Làm thế nào tôi có thể gửi các giá trị của TextBox như một tham số của ActionLink?
Cách ngữ nghĩa chính xác của việc gửi đầu vào các lĩnh vực giá trị (chẳng hạn như hộp văn bản) đến một máy chủ là bằng cách sử dụng một html <form>
và không liên kết:
<% using (Ajax.BeginForm("MyAction", "MyController", new AjaxOptions { UpdateTargetId = "updateTargetId" })) { %>
<%= Html.TextBoxFor(m => m.SomeField) %>
<input type="submit" value="Link Text" />
<% } %>
Bây giờ trong hành động điều khiển của bạn, bạn sẽ tự động nhận được giá trị của SomeField
đầu vào nhập vào bởi người sử dụng:
public class MyController: Controller
{
public ActionResult MyAction(string someField)
{
/* return your content */
}
}
Bạn có thể dĩ nhiên cố gắng vi phạm các ngữ nghĩa đánh dấu và đường HTML là nghĩa vụ phải làm việc bởi trong sisting trên bằng cách sử dụng một ActionLink
ngay cả khi nó là sai. Trong trường hợp này đây là những gì bạn có thể làm:
<%= Html.TextBoxFor(m => m.SomeField) %>
<%= Html.ActionLink("Link Text", "MyAction", "MyController", null, new { id = "myLink" }) %>
và sau đó trong một tập tin javascript riêng biệt kín đáo AJAXify liên kết này sử dụng jQuery:
$(function() {
$('#myLink').click(function() {
var value = $('#SomeField').val();
$('#updateTargetId').load(this.href, { someField: value });
return false;
});
});
Nguồn
2011-07-14 21:24:34
câu trả lời của bạn: http://stackoverflow.com/questions/2595830/pass-multiple-parameters-in-an-mvc-ajax-actionlink – AmirHossein