【问题标题】:Razor manipulate urlRazor 操纵 url
【发布时间】:2023-04-08 14:08:01
【问题描述】:

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

网址将位于页面上的不同位置。例如。 “下一页”按钮将具有相同的 url,只是增加了 {pageno},并且表头将具有 {sorttype} 不同。

在 razor 中是否有一种很好的方法可以做到这一点,或者我只需要获取原始 url,然后自己解析它?

谢谢。

【问题讨论】:

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


【解决方案1】:

您应该将 URL 生成留给 ASP.NET MVC 路由。在 global.asax 中,您应该为您的客户页面正确配置路由,以便它可以采用 pageno、sorttype 和其他参数。

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

如果你觉得写 @Url.Action("Index", "Customer", new { pageno = 1, sorttype = "type", 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

【讨论】:

  • 使用@Url.RouteUrl 让它工作,因为它允许我通过给它一个指向我指定的routeconfigs 之一的参数来获得1/something/23 格式。谢谢。
猜你喜欢
  • 1970-01-01
  • 2010-10-19
  • 2011-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多