2011-12-02 60 views
3

可能重複:
ASP.NET MVC - Can i have multiple names for the same action?ASP.NET MVC - 重複ActionName 1周的ActionResult屬性

我在想,如果它可能有兩個操作指向相同的ActionResult在控制器,像這樣:

[HttpPost] 
[ActionName("ManualSearch")] 
[ActionName("AddProduct")] 
public virtual ActionResult MyPostAction(MyModel model) 
{ 

// do code... 

} 

這樣做的原因是因爲我有2個視圖th在每個進程中,一個動作不同,但它們都包含一個表單,它本質上是做同樣的事情,所以我想知道只是將這兩個表單POST發送到同一個動作,就像我上面試過的,只是顯然它不可能複製ActionName屬性。

+1

簡短的回答:不,你不能。您可以修改路由,以便不同的URL指向相同的操作。 –

回答

8

爲什麼不創建兩個不同的動作和由這兩個動作調用的私有方法?

public ActionResult Action1(MyModel model) 
{ 
    return PrivateAction(model); 
} 

public ActionResult Action2(MyModel model) 
{ 
    return PrivateAction(model); 
} 

private ActionResult PrivateAction(MyModel model) 
{ 
     .... do stuff.... 
} 

我認爲最簡單的事情是最可靠的;)

+0

感謝您的回答,我剛剛複製了第二個動作的原始動作,將其更改爲您的答案 – CallumVass

+0

您還可以爲PrivateAction添加[NonAction]屬性,如果它是公開的 – ysrb