Jak mogę wysłać wartości TextBox jako parametr ActionLinka?
semantycznie poprawny sposób wysyłania pola wprowadzania wartości (takie jak pola tekstowe) do serwera jest za pomocą html <form>
i nie łączy:
<% using (Ajax.BeginForm("MyAction", "MyController", new AjaxOptions { UpdateTargetId = "updateTargetId" })) { %>
<%= Html.TextBoxFor(m => m.SomeField) %>
<input type="submit" value="Link Text" />
<% } %>
Teraz w akcji kontrolera można automatycznie uzyskać wartość wejścia SomeField
wprowadzone przez użytkownika:
public class MyController: Controller
{
public ActionResult MyAction(string someField)
{
/* return your content */
}
}
można oczywiście próbować naruszać semantyki znaczników HTML i sposób ma pracować przez w opierając się na użyciu ActionLink
, nawet jeśli jest on nieprawidłowy. W tym przypadku, oto co można zrobić:
<%= Html.TextBoxFor(m => m.SomeField) %>
<%= Html.ActionLink("Link Text", "MyAction", "MyController", null, new { id = "myLink" }) %>
a następnie w oddzielnym pliku JavaScript dyskretnie AJAXify ten link jQuery:
$(function() {
$('#myLink').click(function() {
var value = $('#SomeField').val();
$('#updateTargetId').load(this.href, { someField: value });
return false;
});
});
Twoja odpowiedź: http://stackoverflow.com/questions/2595830/passing-multiple-parameters-in-an-mvc-ajax-actionlink – AmirHossein