根据单击的按钮将相同的表单发布到不同的操作

时间:2011-09-22 00:26:58

标签: javascript jquery asp.net-mvc posting

我在StackOverflow上有类似的帖子,但也许我的误解更为重要。 我有一个动作索引()和索引视图的渲染。 从Index()视图取决于单击的按钮[HttpPost]索引()或[HttpPost] Search()必须被调用因为我发布了一些数据。发布到不同操作的唯一方法是使用jQuery吗?如果jQuery是唯一的方法,如果我的操作返回视图(完整的Html页面),我必须从$ .post清理整个文档元素并用我的视图html填充它?我对这一切都很陌生,非常感谢!

@using (Html.BeginForm())
{
    <input name="startDate" type="text" size="20" class="inputfield" id="datepicker" />
    <a href="#" id="apply_button">...</a>
    <a href="#" id="go_button">...</a>
}


public ActionResult Index(string lang)
{
    return View();
}

//Perhaps this action is needed
[HttpPost]
public ActionResult Index(string lang, string startDate)
{
    return View();
}

[HttpPost]
public ActionResult Search(string lang, string startDate)
{
    return View();
]

2 个答案:

答案 0 :(得分:14)

您可以根据点击的按钮更改表单的操作属性。

e.g。要在点击“转到”按钮时发布到“搜索”操作:

$('#go_button').click(function() {
    $('form').attr("action", "Search");  //change the form action
    $('form').submit();  // submit the form
});

答案 1 :(得分:1)

当您需要更改操作以及控制器时,还可接受已接受的答案:

$('#go_button').click(function() {
    $('form').attr("action", "@("Search","OtherControllerName")");  //change the form action
    $('form').submit();  // submit the form
});