Auf die Gefahr hin, das Offensichtliche zu fragen ... Ich muss AJax.ActionLink verwenden, um den aktuellen Wert einer SelectList an meinen Controller zu senden. Wie mache ich das?Verwenden von AJAX zum Zurücksenden von SelectList-Wert
Unten ist ein Teil meiner aktuellen Ansicht. Ich muss "15" durch den aktuellen Wert der SelectList ersetzen.
<% 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%>
die „Antwort“ Mit Ajax.BeginForm statt Ajax.ActionLink zu verwenden, unten ist ein Teil der Ansicht I mit endete.
<% 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%>
Und unten ist der Controller. Beachten Sie, dass der Parameter prodId im Aufruf von Ajax.BeginForm angegeben ist, der Parameter userDocId jedoch vom aktuellen Wert der SelectList im Formular angegeben wird.
<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
Ich fand diesen Link über AJAX Formulare hilfreich: http://msdn.microsoft.com/en-us/library/dd381533.aspx – Adventure