我想在注册/登录成功后在网址中输入用户名,如此
http://myweb.com/username/255
http://myweb.com/username/settings
我正在使用ASP.Net Rewrite模块,这是我目前使用的重写规则之一,它生成http://myweb.com/home/255
:
<rule name="HomeRewrite" stopProcessing="true">
<match url="^home$"/>
<conditions>
<add input="{URL}" pattern="\.axd$" negate="true"/>
</conditions>
<action type="Rewrite" url="/home.aspx"/>
</rule>
我试图改变自己这样的事情:
<rule name="HomeRewrite" stopProcessing="true">
<match url="^{R:1}/home$"/>
<conditions>
<add input="{URL}" pattern="\.axd$" negate="true"/>
</conditions>
<action type="Rewrite" url="/home.aspx"/>
</rule>
但它没有用,我知道我做错了。那么在这方面有什么帮助吗?
答案 0 :(得分:2)
虽然 ASP.NET Routing 是MVC的一部分,但您也可以使用ASP.Net Forms Applications中的机制(参见http://www.4guysfromrolla.com/articles/051309-1.aspx)
E.g。在Global.asax的无效Application_Start(object sender, EventArgs e)
你可以添加这段代码
RouteTable.Routes.Add("Users", new Route("{username}/settings",
new CustomRouteHandler()));
自定义类CustomRouteHandler
实现IRouteHandler
将请求发送到您的设置代码(视图)。
您只需要在验证后立即将用户重定向到该网址(并将其保留在那里),这可以通过以下方式完成:在Global.asax的Application_BeginRequest(object sender, EventArgs e)