剃刀操纵网址

时间:2014-07-22 13:10:44

标签: asp.net asp.net-mvc url razor

我正在使用asp.net mvc构建一个页面,我必须在表格中显示很多用户。我想用以下网址制作分页视图: mypage.com/Customer/{pageno} / {sorttype} / {somethingelse}

网址将位于网页上的不同位置。例如。 “下一页”按钮将具有相同的网址,仅增加{pageno},表格标题将{sorttype}不同。

有没有一种很好的方法在剃须刀中做到这一点,或者我只需要获取原始网址,并自己解析它?

感谢。

1 个答案:

答案 0 :(得分:1)

您应该将URL生成留给ASP.NET MVC路由。在global.asax中,您应该正确配置Customer页面的路由,以便它可以使用pageno,sorttype和somethingelse参数。

然后在Razor中你应该只使用Url.Action(或Html.ActionLink)方法,这样就可以为你生成URL。您可以在您的情况下使用以下重载: http://msdn.microsoft.com/en-us/library/dd470197(v=vs.118).aspx

如果你发现写东西太复杂了,不能写@ Url.Action("索引","客户",新{pageno = 1,sorttype ="类型&# 34;,somethingelse =" test"),然后你可以添加另一个扩展方法,如Url.MyAction,它将采用3个参数(int pageno,string sorttype,string somethingelse)并在内部调用Url.Action。但是,我不建议这样做,因为代码的可读性会出乎意料地降低。每个人都知道Url.Action方法,而你的新Url.MyAction对于阅读代码的其他开发人员来说将是新的。

同样,密钥是正确的路由,因此Url.Action()将呈现给" / Customer / 1 / type / test"。您可以在以下链接中找到更多信息:http://www.asp.net/mvc/tutorials/older-versions/controllers-and-routing/asp-net-mvc-routing-overview-cs