Asp.net mvc 禁用用于Url解析的ASP.NET MVC路由

Asp.net mvc 禁用用于Url解析的ASP.NET MVC路由,asp.net-mvc,asp.net-mvc-routing,Asp.net Mvc,Asp.net Mvc Routing,我在MVC项目中使用以下路由配置: var json = routes.MapRoute( name: "DefaultJson", url: "json/{controller}/{action}/{id}", defaults: new { ... } ); json.DataTokens["force-json-result"] = new object(); routes.MapRoute( name: "Default", url: "{co

我在MVC项目中使用以下路由配置:

var json = routes.MapRoute(
    name: "DefaultJson",
    url: "json/{controller}/{action}/{id}",
    defaults: new { ... }
);

json.DataTokens["force-json-result"] = new object();

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { ... }
);
这是在开发环境中使用的,其思想是允许视图设计者在没有VisualStudio的情况下查看传递给视图的整个模型

如果我使用Url解析器,将使用第一个路由。例如,下面的命令

@Url.Action("Action", "Controller")
将打印

/json/Controller/Action

有没有办法在Url解析过程中忽略我的第一条路由?

我不知道有什么办法可以满足你的要求,但我已经用另一种方式解决了这个问题,在我的布局页面中添加了一个片段,当站点处于开发模式时,它会将json格式的模型输出到隐藏的div中


同样的信息也可用,开发者不必切换URL进行调试。

一种方法是使用。使用它,您可以指定特定的路由名称,然后生成url

由于其他困难,我结束了使用查询字符串。但这似乎是最好的解决方案。