如何配置Html.EncodedActionLink以正确路由到指定Area区域
解决方案
生成指向指定Area的路由链接时,必须在路由参数对象中显式声明area属性,否则路由引擎会默认匹配根级(非Area)的对应控制器路由。
将你原有代码修改为如下形式即可:
@Html.EncodedActionLink("Edit", "UpdateBlog", "Blog", new { area = "Writer", id = item.BlogID }, null)
修改后生成的链接会自动匹配Writer区域的路由规则,输出你预期的localhost/Writer/Blog/UpdateBlog?q=+kBlw5MHdHA=格式路径。
注意事项
- 若需要生成指向根级非Area控制器的链接,可显式传入
area = "",避免当前视图处于某个Area下时,路由引擎自动拼接当前Area路径导致链接错误 - 即使当前视图就位于目标Area内,跨控制器生成链接时显式指定
area参数也能避免多路由匹配优先级导致的链接生成异常 - 你现有URL中的
q=+kBlw5MHdHA=是项目自定义的加密ID参数逻辑,添加area参数不会影响这部分的正常生成
内容的提问来源于stack exchange,提问作者Asif Tufail
相关产品推荐
相关产品推荐

