我没有经历过那件事。 但是有这个问题的解决方案,如果你不希望使用相同的名称提交按钮:
@using (Html.BeginForm("PostNews", "Home", FormMethod.Post))
{
<input type="submit" name="submit.Publish" value="Publish News" />
<input type="submit" name="submit.Save" value="Save News" />
}
public class HomeController : Controller
{
[HttpPost, ActionName("PostNews"), ActionRequired("submit.Publish")]
public ActionResult PublishNews()
{
ViewBag.Message = "Your app description page.";
return View(...);
}
[HttpPost, ActionName("PostNews"), ActionRequired("submit.Save")]
public ActionResult SaveNews()
{
return View(...);
}
}
public class ActionRequiredAttribute : ActionMethodSelectorAttribute
{
private readonly string _submitButtonName;
public ActionRequiredAttribute(string submitButtonName)
{
_submitButtonName = submitButtonName;
}
public override bool IsValidForRequest(ControllerContext controllerContext, MethodInfo methodInfo)
{
var actionRequired = controllerContext.RequestContext.HttpContext.Request.Form[_submitButtonName];
return !string.IsNullOrEmpty(actionRequired);
}
}
感谢您的答复。但在我的情况下,我不能使用2个actionresult方法。我必须对这两个按钮使用相同的动作。 – udayasri 2014-10-18 09:40:44