ASP.NETMVC2路由中的硬代码URL
这是创建项目时提供的默认管线-ASP.NETMVC2路由中的硬代码URL,asp.net,Asp.net,这是创建项目时提供的默认管线- routes.MapRoute(“默认值”、“{controller}/{action}/{id}”、新的{controller=“Home”、action=“Index”、id=UrlParameter.Optional}) 但是,在这里,只有当您键入“关于”页面时才会显示 我想在用户键入时显示“关于”页面 如果不写一个名为About的控制器,我怎么做呢 这不起作用: routes.MapRoute(“About”,“About”,new{controller=
routes.MapRoute(“默认值”、“{controller}/{action}/{id}”、新的{controller=“Home”、action=“Index”、id=UrlParameter.Optional})代码>
但是,在这里,只有当您键入“关于”页面时才会显示
我想在用户键入时显示“关于”页面
如果不写一个名为About的控制器,我怎么做呢
这不起作用:
routes.MapRoute(“About”,“About”,new{controller=“Home”,action=“About”,id=urlparmeter.Optional})代码>
如何修改它,以便在请求/About时显示About页面?尝试在其他路线之前添加此选项:
routes.MapRoute(
"Home", // Route name
"{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
请记住,{controller}/{action}/{id}将尝试匹配url的非域部分。因此,您需要尝试将您想要的url与路由匹配
您有以下url:
www.mydomain.com/About
您知道控制器必须是“Home”,操作必须是“About”。因此,您可以使用以下方式匹配您的路线:
www.mydomain.com/{action}
但是,域部分将需要删除,因此您最终会
{action}
然后需要设置默认路由值,如上面的示例所示。现在,如果我们转到域,我们将被路由到“主”控制器和“关于”操作。如果我们访问www.mydomain.com/HelloWorld,我们将被路由到“主”控制器和“HelloWorld”操作。我们可以添加一个可选的“id”参数,如下所示:
{action}/{id}
但我们需要确保将默认id设置为UrlParameter.Optional
希望这有帮助!:)
编辑:
如果要将url硬编码为特定路由,可以将默认路由参数设置为所需的路由,然后只使用url的非域部分作为路由捕获
因此,您将使用“OldSite/MyOldPage.aspx”代替“{controller}/{action}/{id}”,我对条目进行了重要的更新。路由名称必须唯一,否则将出现错误。+1。。我对自己说。我完全忘记了在默认设置之前添加它:|