是否有一些简单的方法来处理来自同一表单的多个提交按钮?例:
<% Html.BeginForm("MyAction", "MyController", FormMethod.Post); %>
<input type="submit" value="Send" />
<input type="submit" value="Cancel" />
<% Html.EndForm(); %>
Run Code Online (Sandbox Code Playgroud)
知道如何在ASP.NET Framework Beta中执行此操作吗?我用Google搜索的所有示例中都有单个按钮.
我有这个错误:
执行处理程序'System.Web.Mvc.HttpHandlerUtil + ServerExecuteHttpHandlerAsyncWrapper'的子请求时出错.
内部异常:
不允许子操作执行重定向操作.
知道为什么会这样吗?
顺便说一句,错误发生在这一行:
@Html.Action("Menu", "Navigation")
Run Code Online (Sandbox Code Playgroud)
导航控制器中的菜单操作如下所示:
public ActionResult Menu()
{
return PartialView();
}
Run Code Online (Sandbox Code Playgroud) 我有一个_layout加载菜单:
...
@Html.Action("MenuRole","Menu")
...
Run Code Online (Sandbox Code Playgroud)
在Action MenuRole我检查与Action Filter的会话:
[CheckSession]
[ChildActionOnly]
public ActionResult MenuRole()
{
....
return PartialView("_LoadMenu",menuModel);
//_LoadMenu is partial view to show menurole
}
Run Code Online (Sandbox Code Playgroud)
并在Action Filter中:
public class CheckSession : ActionFilterAttribute, IActionFilter
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var ctx = filterContext.HttpContext;
//if Session == null => Login page
if (ctx.Session["Username"] == null)
{
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { action = "Index", controller = "Login" }));
}
base.OnActionExecuting(filterContext);
}
}
Run Code Online (Sandbox Code Playgroud)
当会话超时时,_layout在@ Html.Action("MenuRole","Menu")中显示错误:不允许子操作执行重定向操作
asp.net-mvc custom-action-filter action-filter asp.net-mvc-3 asp.net-mvc-4