首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >T4MVC MapRoute不工作?

T4MVC MapRoute不工作?
EN

Stack Overflow用户
提问于 2014-07-13 14:17:51
回答 3查看 386关注 0票数 0

我正在尝试设置索引页路由。它的工作方式如下:

代码语言:javascript
复制
routes.MapRoute("", "", new {controller = "Home", action = "Index"})

但是如果我用T4MVC替换它:

代码语言:javascript
复制
routes.MapRoute("", "", MVC.Home.Index());

不知何故,它不起作用(我得到了一个“资源找不到”错误)。好像我做了几百万次,而且成功了。那我做错什么了?

更新.

我使用了路由调试器,发现了ASP.NET MVC路由和T4MVC路由的区别在于,T4MVC添加了Area=,而ASP.NET MVC没有(它只保留控制器和操作)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-07-16 10:51:23

这个问题是由装配绑定的一些问题引起的。我查看了VS中的警告,按了两次有关汇编绑定的警告,它们都是固定的。这个问题对我很有帮助:T4MVC ArgumentOutOfRangeException in View

票数 0
EN

Stack Overflow用户

发布于 2014-07-14 14:42:07

更新(7/15/2014):作为一种解决办法,我认为你需要在你的项目中添加一个虚拟区域。

  • 右键单击“项目”并选择“添加/区域”。把它命名为“假的”(或其他什么)
  • 除了DummyAreaRegistration.cs文件之外,您可以删除其中的所有内容。

原来的答案:

如果您在MapRoute调用上“进入定义”,您能检查它是否确实进入了T4MVC重载吗?注意,如果您在某个区域,则需要调用MapRouteArea

票数 1
EN

Stack Overflow用户

发布于 2014-07-13 21:13:12

请注意,MVC.Home.Index()返回ActionResult

如果您想获得操作和控制器的名称,则必须编写:

MVC.Home.Index().GetT4MVCResult().Controller -控制器名称MVC.Home.Index().GetT4MVCResult().Action -操作名称

编辑:

代码语言:javascript
复制
routes.MapRoute("", "", new {controller = MVC.Home.Index().GetT4MVCResult().Controller, action = MVC.Home.Index().GetT4MVCResult().Action})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24723627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档