在我的项目(ASP.NET Web窗体)中,我想使用从NuGet安装的Friendly URLs。
我在global.asax文件中注册了路由:
Public Shared Sub RegisterRoutes(routes As RouteCollection)
routes.MapPageRoute("Route", "default/{id}", "~/default.aspx?id={id}")
End Sub
通过此代码,我可以使用default / 123而不是default?id = 123。我想在URL中添加分配给ID的名称。因此,我可以使用如下网址:default?123-Firstname-Lastnam。名称保存在数据库的单列中。如何将第二个参数(名称)添加到url,添加符号-
并显示时不带字母,如下所示:(řčš
因为该应用程序使用的是Chech语言。感谢您的回答。
要使用FriendlyUrls,从NuGet安装它之后,请转到global.asax
并启用它:
Imports Microsoft.AspNet.FriendlyUrls
Public Class Global_asax
Inherits System.Web.HttpApplication
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
RegisterRoutes(RouteTable.Routes)
End Sub
Sub RegisterRoutes(ByVal routes As RouteCollection)
routes.EnableFriendlyUrls()
End Sub
'rest of global
就是这样。要从页面的URL中获取值,您需要遍历URL段(不要忘记Imports Microsoft.AspNet.FriendlyUrls
):
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
For Each segment As String In HttpRequestExtensions.GetFriendlyUrlSegments(Request)
Dim val As String = segment
Next
End Sub
所以访问siteURL.com/default/123
将循环一次,给你123
,同时siteURL.com/default/122/Bilbo/Baggins
将循环三次,给你122
,Bilbo
和Baggins
。
或者,如果您只想使用普通路由而不是FriendlyUrls:
routes.MapPageRoute("id-route", "default/{id}", "~/default.aspx")
关于路由的一件好事是,您可以使用URL传递变量数据,而无需使用查询字符串。因此,传递名称数据的路线可能看起来像
Sub RegisterRoutes(ByVal routes As RouteCollection)
routes.MapPageRoute("name-route", "default/{id}/{firstName}/{lastName}", "~/default.aspx")
End Sub
然后可以用default.aspx命中siteURL.com/default/123/Frodo/Baggins
并具有:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
Dim id As Integer = 0
Int32.TryParse(Page.RouteData.Values("id"), id)
Dim firstName As String = Convert.ToString(Page.RouteData.Values("firstName"))
Dim lastName As String = Convert.ToString(Page.RouteData.Values("lastName"))
'do something if id > 0
End Sub
其他注意事项:如果只想在单个列中输入名称,则可以将firstName
和lastName
变量组合以进行保存。-
像您所讨论的那样使用分号并不是一个好主意,因为人们可以使用带连字符的名称。将名称保存在单个列中往往会引起问题,因为这使按名字或姓氏等进行排序变得更加困难。
同样,您似乎将通过GET
命令将其插入数据库。我认为使用PUT
或可以更清楚地了解这一点POST
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句