加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – ASP.NET MVC 3控制器路由 – 使家庭控制器下的

发布时间:2020-12-16 00:33:50 所属栏目:asp.Net 来源:网络整理
导读:目前,家庭控制器下的所有内容都显示在URL中 example.com/Home/{Action} 有没有办法,我们可以保持所有其他路由的方式,但只有特殊情况的家庭控制器,所以家中的一切都在域下。 喜欢 example.com/aboutexample.com/contactexample.com/error 而不是为他们每
目前,家庭控制器下的所有内容都显示在URL中
example.com/Home/{Action}

有没有办法,我们可以保持所有其他路由的方式,但只有特殊情况的家庭控制器,所以家中的一切都在域下。

喜欢

example.com/about
example.com/contact
example.com/error

而不是为他们每个创建新的控制器类。

编辑:

另一个URL就像

example.com/user/details/123
example.com/user/edit/123

userController中的哪些应该像现在一样工作

解决方法

我觉得最好的办法是:
routes.MapRoute("home","home",new { controller = "Home",action = "Index" });
 routes.MapRoute("about","about",action = "About" });
 routes.MapRoute("contact","contact",action = "Contact" });

 routes.MapRoute(
     "Default",// Route name
     "{controller}/{action}/{id}",// URL with parameters
     new { controller = "Home",action = "Index",id = UrlParameter.Optional } // Parameter defaults
 );

当您要创建链接时,请使用:

@Html.RouteLink("Home",new{/* route values */},new {/* html attribues */})

要么:

@Html.RouteLink("Home","home")

代替:

@Html.ActionLink("Home","Index","Home",new {/* html attribues */})

这对我有用,也应该为你工作。

UPDATE:

您可以在url中的action部分之前创建一个像@(或 – 或其他任何东西)的符号,以使url是唯一的,例如:

routes.MapRoute(
    "test",// route name
    "@{action}",// url and parameters
    new {controller = "MyHome",action = "Home"} // parameter defaults
    );
routes.MapRoute(
    "Default",// Route name
    "{controller}/{action}/{id}",// URL with parameters
    new { controller = "Home",id = UrlParameter.Optional } // Parameter defaults
     );

以这种方式,您的网址与默认地图路线不同,您可以创建如下URL:

site.com/@Home
site.com/@About
site.com/@Contact

但是,在我的想法中,第一个是更好的,我总是使用它。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读