Asp.Net Mvc控制器重名问题整理

一、关于控制器重名问题

1.没有区域的时候控制器不能重名

2.有区域的时候,外部控制器和区域中的控制器重名,访问外部控制器异常,访问区域控制器正常。

3.区域和区域之间的控制器重名,互不影响。区域从某种程度上,起到一层命名空间的作用

 

二、解决方案-为路由指定命名空间

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
    namespaces: new[] { "MVC_Base1.Controllers" } //指定控制器命名空间
);

三、解决方案,使用区域,如果外部控制器和区域控制器有重名,则为外部路由指定命名空间。

 注:获取区域名称需要在路由参数的DataTokens中获取

RouteData.DataTokens["area"]= above

RouteData.Values["area"]=


RouteData.Values["controller"]= Home

RouteData.DataTokens["controller"]=


RouteData.Values["action"]= Index

RouteData.DataTokens["action"]=

更多:

路由配置4-伪静态

posted @   天马3798  阅读(1122)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示