如果SoSomethingAgain是所謂的行動,那麼前面兩個答案將運行裏面DoSomething的代碼,但控制器動作和上下文還是SoSomethingAgain。這意味着DoSomething中的返回View()語句將查找SoSomethingAgain視圖。
同樣,管道將使用SoSomethingAgain上定義的過濾器,而不是DoSomething上的過濾器。如果您在DoSomething上放置了[授權]過濾器,您可以看到這一點。如果您點擊DoSomething操作,系統會提示您登錄,但如果您點擊SoSomethingElse操作,則不會提示您。
也許這就是你想要的,也許不是。如果不是,並且您希望同時擁有DoSomething網址和SoSomethingElse網址,但都運行相同的代碼,那麼可以擺脫SoSomethingElse控制器操作,並添加自定義路由(在默認路由之前)。
routes.MapRoute(
name: "SoSomethingAgainRoute",
url: "{controller}/SoSomethingAgain/{id}",
defaults: new { controller = "Home", action = "DoSomething", id = UrlParameter.Optional }
);
您可以使用此屬性'[ActionName(「SoSomethingAgain」)]''DoSomething'操作方法嗎? –