ASP.NET MVC - 1 ActionResult上的重复ActionName属性

时间:2011-12-02 08:08:36

标签: asp.net-mvc

  

可能重复:
  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属性。

1 个答案:

答案 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....
}

我认为最简单的事情是最可靠的;)