ASP.NET的友好URL
|
Python框架总是提供方法来处理以优雅的方式传达请求数据的URL,例如 http://somewhere.overtherainbow.com/userid/123424/ 我想让你注意到结束路径/ userid / 123424 / 你如何在ASP.NET中这样做? 解决方法此示例使用ASP.NET路由来实现友好的URL。应用程序处理的映射示例如下: http://samplesite/userid/1234 – http://samplesite/users.aspx?userid=1234 此示例使用查询字符串,并避免任何修改aspx页面上的代码的要求。 步骤1 – 将必要的条目添加到web.config <system.web>
<compilation debug="true">
<assemblies>
…
<add assembly="System.Web.Routing,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35"/>
</assemblies>
</compilation>
…
<httpModules>
…
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule,System.Web.Routing,PublicKeyToken=31BF3856AD364E35" />
</httpModules>
</system.web>
<system.webServer>
…
<modules>
…
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule,PublicKeyToken=31BF3856AD364E35"/>
</modules>
<handlers
…
<add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler,System.Web,Version=2.0.0.0,PublicKeyToken=b03f5f7f11d50a3a"/>
</handlers>
</system.webServer>
步骤2 – 在global.asax中添加路由表 定义从友好的URL到aspx页面的映射,保存请求的用户名以供以后使用。 void Application_Start(object sender,EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.Add("UseridRoute",new Route
(
"userid/{userid}",new CustomRouteHandler("~/users.aspx")
));
}
步骤3 – 实现路由处理程序 在发生路由之前,将querystring添加到当前上下文中。 using System.Web.Compilation;
using System.Web.UI;
using System.Web;
using System.Web.Routing;
public class CustomRouteHandler : IRouteHandler
{
public CustomRouteHandler(string virtualPath)
{
this.VirtualPath = virtualPath;
}
public string VirtualPath { get; private set; }
public IHttpHandler GetHttpHandler(RequestContext
requestContext)
{
// Add the querystring to the URL in the current context
string queryString = "?userid=" + requestContext.RouteData.Values["userid"];
HttpContext.Current.RewritePath(
string.Concat(
VirtualPath,queryString));
var page = BuildManager.CreateInstanceFromVirtualPath
(VirtualPath,typeof(Page)) as IHttpHandler;
return page;
}
}
来自users.aspx的代码 aspx页面上的代码供参考。 protected void Page_Load(object sender,EventArgs e)
{
string id = Page.Request.QueryString["userid"];
switch (id)
{
case "1234":
lblUserId.Text = id;
lblUserName.Text = "Bill";
break;
case "1235":
lblUserId.Text = id;
lblUserName.Text = "Claire";
break;
case "1236":
lblUserId.Text = id;
lblUserName.Text = "David";
break;
default:
lblUserId.Text = "0000";
lblUserName.Text = "Unknown";
break;
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如果ASP.NET MVC中的用户匿名,则重定向到自
- asp.net-mvc – ASP.NET MVC中的WebApi [FromUri]是什么?
- asp.net-mvc-4 – 返回状态代码未经授权在WebAPI中定制IAct
- asp.net – 如何将所有httpErrors重定向到自定义URL?
- asp.net-mvc-3 – 是否可以在将razor viewengine发送到客户
- 析构函数何时在ASP.NET中调用C#类?
- asp.net-mvc – 通过删除空格打破我的calc语句的MVC捆绑?
- asp.net调查问卷引擎
- asp.net-mvc-4 – MVC 4创建slug类型url
- asp.net-mvc-3 – 从剃刀视图引用资源文件
- asp.net-mvc – Razor查看引擎在VB.NET中的怪癖
- ASP.NET Core Web API模板中没有单独的用户帐户a
- asp.net-mvc – redirectToAction()和View()之间
- asp.net-mvc – ASP.NET MVC – ModelState.IsVa
- wcf-data-services – 为什么我的oData响应没有导
- asp.net-mvc – asp fontawesome 404(未找到)
- Asp.NET控制文件上传的大小方法(超简单)
- 我应该在ASP.NET MVC中构建我的下一个Web应用程序
- asp.net字符串分割函数使用方法分享
- asp.net url分页类代码
