如何将 TextBox 的值作为 ActionLink 的参数发送?
将输入字段值(例如文本框)发送到服务器的语义上正确的方法是使用 html<form>
而不是链接:
<% using (Ajax.BeginForm("MyAction", "MyController", new AjaxOptions { UpdateTargetId = "updateTargetId" })) { %>
<%= Html.TextBoxFor(m => m.SomeField) %>
<input type="submit" value="Link Text" />
<% } %>
现在,在您的控制器操作中,您将自动获取SomeField
用户输入的输入:
public class MyController: Controller
{
public ActionResult MyAction(string someField)
{
/* return your content */
}
}
当然,您可以尝试通过坚持使用ActionLink
即使它是错误的。在这种情况下,您可以执行以下操作:
<%= Html.TextBoxFor(m => m.SomeField) %>
<%= Html.ActionLink("Link Text", "MyAction", "MyController", null, new { id = "myLink" }) %>
然后在一个单独的 javascript 文件中使用 jQuery 以不显眼的方式 AJAX 化此链接:
$(function() {
$('#myLink').click(function() {
var value = $('#SomeField').val();
$('#updateTargetId').load(this.href, { someField: value });
return false;
});
});