gri*_*egs 5 c# asp.net-mvc asp.net-mvc-2
我的控制器中有以下内容;
public ActionResult CocktailLoungeBarAttendant()
{
return View();
}
[HttpPost]
public ActionResult cocktailLoungebarattendant(string name, string email, string phone)
{
return View();
}
public ActionResult merchandisecoordinator()
{
return View();
}
[HttpPost]
public ActionResult merchandisecoordinator(string name, string email, string phone)
{
return View();
}
Run Code Online (Sandbox Code Playgroud)
这只发生了4次,但是我发现我的代码重复了4次.
然后我有一个BaseController然后抓取参数并用它们做东西;
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
Run Code Online (Sandbox Code Playgroud)
我希望能够取消Post ActionResult的功能并在基本控制器中有一个说.
这甚至可能吗?
你可以做的是:在你的(基本)控制器中添加:
protected override void HandleUnknownAction(string actionName)
{
var controllerName = GetControllerName();
var name = GetViewName(ControllerContext, string.Format("~/Views/{0}/{1}.cshtml",controllerName, actionName));
if (name != null)
{
var result = new ViewResult
{
ViewName = name
};
result.ExecuteResult(ControllerContext);
}
else
base.HandleUnknownAction(actionName);
}
protected string GetViewName(ControllerContext context, params string[] names)
{
foreach (var name in names)
{
var result = ViewEngines.Engines.FindView(ControllerContext, name, null);
if (result.View != null)
return name;
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
这将尝试检查是否存在未定义方法的视图。我认为您可以从这里自行扩展它以满足您的需求。
| 归档时间: |
|
| 查看次数: |
268 次 |
| 最近记录: |