我一直在寻找处理表单中多个提交按钮的好技巧,然后我从这个 url 得到了一些建议,我跟着但失败了。 如何处理 ASP.NET MVC 框架中的多个提交按钮?
由@Andrey Shchekin 发布。
他只是说创建一个像下面这样的类,所以我在同一个控制器中做了
public class HttpParamActionAttribute : ActionNameSelectorAttribute {
public override bool IsValidName(ControllerContext controllerContext, string actionName, MethodInfo methodInfo) {
if (actionName.Equals(methodInfo.Name, StringComparison.InvariantCultureIgnoreCase))
return true;
if (!actionName.Equals("Action", StringComparison.InvariantCultureIgnoreCase))
return false;
var request = controllerContext.RequestContext.HttpContext.Request;
return request[methodInfo.Name] != null;
}
}
然后视图中的多个提交按钮如下所示,控制器代码如下所示
<% using (Html.BeginForm("Action", "Post")) { %>
<!— …form fields… -->
<input type="submit" name="saveDraft" value="Save Draft" />
<input type="submit" name="publish" value="Publish" />
<% } %>
and controller with two methods
public class PostController : Controller {
[HttpParamAction]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult SaveDraft(…) {
//…
}
[HttpParamAction]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Publish(…) {
//…
}
}
但是当我测试他的代码时它永远不会工作。所以任何人都可以告诉我我在哪里犯了错误,或者代码本身对于处理这种情况是错误的。谢谢