URL路由在ASP .Net MVC2中不起作用

时间:2013-08-29 12:10:24

标签: c# asp.net-mvc url-rewriting asp.net-mvc-routing url-routing

我正在使用ASP.Net MVC2应用程序。 因为我使用了URL路由

将网址设为

    https://localhost/StudentDetail/SortField

我在Global.asax

中编写了以下代码
routes.MapRoute(
"StudentDetail", // Route name
"StudentDetail/{SortField}", // URL with parameters
new { controller = "UDashboard", action = "UAboutMeStudentDetails", 
     SortField = "Major" }
);

在我看来,链接如下

<a href="/StudentDetail?SortField='Major'" >Students</a>

但它不起作用。我的网址是

https://localhost/StudentDetail?SortField='Major'

有人可以帮助我获取所需的网址吗?

我希望网址为

https://localhost/StudentDetail/SortField

先谢谢Prashant

1 个答案:

答案 0 :(得分:1)

我认为你对路由的工作原理有不正确的想法。你的路线:

routes.MapRoute(
"StudentDetail", // Route name
"StudentDetail/{SortField}", // URL with parameters
new { controller = "UDashboard", action = "UAboutMeStudentDetails", 
     SortField = "Major" }
);

将采用SortFeild参数(Major,Gpa等),并将{SortField}替换为该值。因此,使用以下actionlink:

@Html.ActionLink("Student Details", "UAboutMeStudentDetails", new {controller="UDashboard", SortField = "Major}) 

将生成以下HTML

<a href="/StudentDetail/Major">Student Details</a>

请注意,SortField的值已替换路线中的{SortField}参数。你永远不会得到一个看起来像你要求的URL,你将如何获得SortField的值?