2014-01-14 25 views
0

我有一個表格Html.Beginform裏面的類型post的Ajax.Actionlink不會將表單的值發送給控制器post方法?

<script src="@Url.Content("~/Scripts/jquery-1.8.2.min.js")"></script> 
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script> 

@using (Html.BeginForm("Index", "Company",IsPost)) 
{ 
    <div class="input-block-level">@Html.TextBoxFor(m => m.SearchString) 
            @Ajax.ActionLink("Submit", "Index", new{@class="btn"},new AjaxOptions { 
                           HttpMethod = "Post", 
                           UpdateTargetId = "partialDiv" 
                          }) 
    </div> 


} 

<div id="partialDiv"></div> 

當點擊即通過Ajax.Actionlink在瀏覽器中創建的鏈接,我沒有得到在控制器文本框的值POST方法。這是爲什麼?另外,我應該使用Ajax.BeginForm?我還沒有使用Ajax.BeginForm,有關如何將此Html.BeginForm轉換爲Ajax.BeginForm的任何提示?

回答

0

您是否嘗試過做jQuery中請求?

<div class="container"> 
    @Html.TextBoxFor(m => m.Input, new { @id = "myInput"}) 
    <input type="submit" value="Submit" class="submit"/> 
</div> 

@section scripts{ 
<script type="text/javascript"> 
    $('.submit').on('click', function() { 
     var searchValue = $('#myInput').val(); 
     $.ajax({ 
      type: "POST", 
      dataType: 'json', 
      url: "/Home/MyMethod", 
      data: {data: searchValue}, 
      success: function(data) { 
       console.log(); 
      } 
     }); 
    }); 
</script> 
} 

//Controller 

[HttpPost] 
public ActionResult MyMethod(string data) 
{ 
    //do something 
} 
相關問題