可能重复:
ASP.NET MVC - Can i have multiple names for the same action?
我想知道是否可能有两个动作指向控制器中的同一个ActionResult,如下所示:
[HttpPost]
[ActionName("ManualSearch")]
[ActionName("AddProduct")]
public virtual ActionResult MyPostAction(MyModel model)
{
// do code...
}
这样做的原因是因为我有2个视图,每个视图都以不同的方式处理动作,但它们都包含一个表单,基本上是做同样的事情,所以我想知道只是将这两个表单POST到同一个动作就像我上面尝试过的那样,显然它不可能复制ActionName属性。
答案 0 :(得分:8)
为什么不创建两个不同的操作和两个调用的私有方法?
public ActionResult Action1(MyModel model)
{
return PrivateAction(model);
}
public ActionResult Action2(MyModel model)
{
return PrivateAction(model);
}
private ActionResult PrivateAction(MyModel model)
{
.... do stuff....
}
我认为最简单的事情是最可靠的;)