asp.net-mvc - RouteValueDictionary 初始化和 MapRoute 问题

标签 asp.net-mvc asp.net-mvc-3 asp.net-mvc-routing

这两段代码是一样的吗?

RouteValueDictionary dic=new RouteValueDictionary();
dic.Add("controller", "Home");
dic.Add("action", "Index");
RouteTable.Routes.MapRoute("Test", "Test/Something", dic);

 RouteTable.Routes.MapRoute("Test", "Test/Something", new{controller="Home", action="Index"});

我在路由表中没有得到相同的路由。当我使用第一个选项时,键“controller”和“action”不在 RouteTable.Routes[0].Defaults.Keys 中,而是添加到 RouteTable.Routes[0] 中。默认值。值

你知道我在第一个选项中做错了什么吗?

最佳答案

您可以为第三个参数传递任何类型的对象,但传递的对象必须包含在您的 url 模式中定义的键,因为它是属性。例如

 public class test
    {
        public string controller { get; set; }
        public string action { get; set; }
        public string id { get; set; }
    } 

     routes.MapRoute(
            "Default",
            "{controller}/{action}/{id}", 
             new test { action = "Index", controller = "Home", id = "" } 
        );

在这种情况下,您的对象必须包含 controlleractionid 属性。

关于asp.net-mvc - RouteValueDictionary 初始化和 MapRoute 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13994864/

相关文章:

asp.net-mvc - 如何向 MVC 网站添加第二个应用程序

c# - Azure 上的 Google Analytics API

c# - 一个 View 上的登录和注册表单 MVC3 Razor

asp.net-mvc-3 - 使用来自服务器的默认数据初始化 View 模型

asp.net-mvc - 我的应用程序中未加载图像、css 和 js 文件

asp.net-mvc-3 - MVC3 Html.EditorFor 没有在我的 View 中渲染任何东西

asp.net - 如何使用 Html.ActionLink 覆盖路由表默认值?

iis-7 - 为什么当 System.Web.Routing 处于事件状态时,反向代理重写规则停止工作?

asp.net-mvc - 我如何从HttpRequestBase获得 "#"之后的网址部分

asp.net-mvc - MVC Razor RC 1 : Can the @section be defined with a string constant?