0
我想在拋出AmbiguousMatchException時拋出它,然後編寫一些代碼來解決它。例如,我有一個操作ChangePassword,只有當用戶登錄時才應該調用它。我有另一個方法RenewPassword,如果用戶沒有登錄,則必須調用它。我已經爲這兩個方法提供了相同的操作名稱。捕獲並解析AmbiguousMatchException
[HttpPost]
[ActionName("ChangePassword")]
public ActionResult RenewPassword(ChangePasswordModel model)
{
...
}
[Authorize]
[HttpPost]
[ActionName("ChangePassword")]
public ActionResult ChangePassword(ChangePasswordModel model)
{
...
}
我想使用相同的動作名稱,因爲我不想讓視圖不必擔心要調用哪個動作。我知道我可以編寫一個自定義的FilterAttribute,它將完成AuthorizeAttribute所做的相反操作,將其應用於RenewPassword方法,從而解決歧義問題。但是,這對於一個非常簡單的需求來說似乎太多了。
有什麼更好的點子?有沒有內建的方式可以說只對匿名用戶執行特定操作,對於登錄用戶而言,不是?
好的建議。這確實需要額外的助手,這與額外的FilterAttribute一樣麻煩。我希望有一個基於優先權的歧義解決機制。在不明確的情況下,應該選擇最高優先級的匹配。 – 2011-02-15 04:02:57