ASP.NET中如何在Admin区域视图用ActionLink调用根控制器并移除Admin路径
解决Area视图中ActionLink生成带Area前缀的问题
在Admin Area的视图里调用根目录下的控制器时,Html.ActionLink会默认继承当前Area的路由上下文,所以才会带上/Admin前缀。要解决这个问题,只需要在路由参数里显式指定Area为空字符串,覆盖默认的Area值即可。
修改后的代码如下:
@Html.ActionLink("Back", "Directory", "DirectoryWebService", new { Area = "", ReturnUrl = Model.ReturnUrl }, new { @class = "common-button" })
原理说明
当视图位于/Areas/Admin/Views目录下时,ASP.NET MVC的路由系统会自动将当前Area(Admin)作为默认路由参数传递给ActionLink。通过手动设置Area = "",相当于告诉路由系统:不要使用当前Area,直接定位到根目录下的控制器,这样生成的链接就不会带有/Admin前缀了。
测试后生成的链接会是正确的:/DirectoryWebService/Directory?ReturnUrl=/Default/Traceability
内容的提问来源于stack exchange,提问作者Stan
相关产品推荐
相关产品推荐

