C# 使用Ajax.BeginForm获取控制器上的按钮Id
目标: 我有一篇关于Ajax.BeginForm的帖子,我的目标是获取控制器上的按钮Id。我见过使用Html.BeginForm的示例,但我需要一个Ajax表单 代码:C#MVC3 视图:C# 使用Ajax.BeginForm获取控制器上的按钮Id,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,目标: 我有一篇关于Ajax.BeginForm的帖子,我的目标是获取控制器上的按钮Id。我见过使用Html.BeginForm的示例,但我需要一个Ajax表单 代码:C#MVC3 视图: 您可以按如下方式获取按钮的值: @using (Ajax.BeginForm("Save", "Valoration", new AjaxOptions() { HttpMethod = "Post", UpdateTargetId = "HvmDetailTabStrip", OnSuccess = "On
您可以按如下方式获取按钮的值:
@using (Ajax.BeginForm("Save", "Valoration", new AjaxOptions() { HttpMethod = "Post", UpdateTargetId = "HvmDetailTabStrip", OnSuccess = "OnSuccessSaveValoration" }))
{
<div id ="HvmDetailTabStrip">
@(Html.Partial("_ValorationDetail"))
</div>
<button type="submit" name="submitButton" value="db1"></button>
<button type="submit" name="submitButton" value="db2"></button>
}
或者,如果传入方法的参数数无关紧要,则可以使用以下方法:
[HttpPost]
public ActionResult Save(ValorationModel model, string submitButton)
{
if(submitButton == "db1"){
var result = ValorationService.Save(ValorationModel);
}else
{
....
}
return PartialView("_ValorationDetail", ValorationModel);
}
另一种解决问题的方法是在这里我不确定这是否会起作用,因为有2个
submit
按钮是无效代码,可能会被浏览器忽略。如果用户点击回车键,他会点击哪个按钮?但是如果没有输入,它允许用户通过按enter/return键提交表单,当用户单击按钮时,您可以使用一些javascript更改隐藏的输入值!!非常有用!:D
@using (Ajax.BeginForm("Save", "Valoration", new AjaxOptions() { HttpMethod = "Post", UpdateTargetId = "HvmDetailTabStrip", OnSuccess = "OnSuccessSaveValoration" }))
{
<div id ="HvmDetailTabStrip">
@(Html.Partial("_ValorationDetail"))
</div>
<button type="submit" name="submitButton" value="db1"></button>
<button type="submit" name="submitButton" value="db2"></button>
}
[HttpPost]
public ActionResult Save(ValorationModel model)
{
string buttonValue = Request["submitButton"];
if(buttonValue == "db1"){
var result = ValorationService.Save(ValorationModel);
}else
{
....
}
return PartialView("_ValorationDetail", ValorationModel);
}
[HttpPost]
public ActionResult Save(ValorationModel model, string submitButton)
{
if(submitButton == "db1"){
var result = ValorationService.Save(ValorationModel);
}else
{
....
}
return PartialView("_ValorationDetail", ValorationModel);
}