有风险询问显而易见的...我需要使用AJax.ActionLink将SelectList的当前值发回给我的控制器。我怎么做?使用AJAX返回SelectList的选择值
下面是我当前的视图的一部分。我需要用SelectList的当前值替换“15”。下面
<% If Model.ShoppingListNames IsNot Nothing Then%>
<%: Html.DropDownList("ShoppingListNames", Model.ShoppingListNames)%>
<%: Ajax.ActionLink("Add to List", "AdjustMaterials", "Docs",
New With {.userDocId = 15, .prodId = Model.ID, .quantity = 1},
New AjaxOptions With {.OnSuccess = "handleUpdate"})%>
<% End If%>
使用“答案”使用Ajax.BeginForm代替Ajax.ActionLink,是我结束了与视图的一部分。
<% If Model.ShoppingListNames IsNot Nothing Then%>
<% Using Ajax.BeginForm("AdjustMaterials", "Docs", New With {.prodId = Model.ID}, New AjaxOptions With {.UpdateTargetId = "result-message"})%>
<%: Html.DropDownList("userDocId", Model.ShoppingListNames)%>
<input value ="Add to List" type ="submit"/>
<% End Using%>
<div id="result-message"></div>
<% End If%>
而下面是控制器。请注意,prodId参数在调用Ajax.BeginForm时指定,但userDocId参数由表单内SelectList的当前值指定。
<HttpPost()>
Function AdjustMaterials(ByVal userDocId As Integer, ByVal prodId As Integer,
Optional ByVal quantity As Integer = 1, Optional ByVal itemTag As String = Nothing) As ActionResult
' Do stuff...
End Function
我发现这个有关AJAX窗体的链接很有帮助:http://msdn.microsoft.com/en-us/library/dd381533.aspx – Adventure