zoukankan      html  css  js  c++  java
  • asp.net mvc5 伪静态 WebForm

    Mvc4和5通用

    1、背景:老项目WebForm开发 需要 融合到新项目Mvc5开发

    2、需求:Url地址TruckDetail.aspx?id=455 达到效果 truck/455.html

    3、不是最佳方案,但是个过度项目所以达到效果ok,欢迎丢转。

    第一步:继承IRouteHandler

    public class OldWebFormsRouteHandler : IRouteHandler
        {
            private string pageName = string.Empty;
            private string id = string.Empty;
            public IHttpHandler GetHttpHandler(RequestContext requestContext)
            {
                
                pageName = requestContext.RouteData.GetRequiredString("oldPageName");
                id = requestContext.RouteData.GetRequiredString("id");
    
                string path="/Pages/" + this.pageName + ".aspx";
    
                IHttpHandler MyHander = BuildManager.CreateInstanceFromVirtualPath(path, typeof(System.Web.UI.Page)) as IHttpHandler;
                return MyHander;
            }
        }

    第二步:在默认规则前ADD 注意.html

    public class RouteConfig
        {
            public static void RegisterRoutes(RouteCollection routes)
            {
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
                routes.Add("MyRoute", new Route("{oldPageName}/{id}.html", new OldWebFormsRouteHandler()));
    
                routes.MapRoute(
                    name: "Default",
                    url: "{controller}/{action}/{id}",
                    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
                );
            }
        }

    第三步:修改Web.config

    <system.webServer>
        <modules runAllManagedModulesForAllRequests="true"/>
    </system.webServer>

    第四步:aspx页面获得参数Request.QueryString["id"]换成RouteData.Values["id"]

    <form id="form1" runat="server">
        <div>
        
            id:<%=RouteData.Values["id"]==null?"yy":RouteData.Values["id"].ToString() %><br />
            oldPageName:<%=RouteData.Values["oldPageName"]==null?"no":RouteData.Values["oldPageName"].ToString() %>
    
        </div>
    </form>

    效果:

    转载请注明来源地址:http://www.cnblogs.com/huangyoum/p/4154338.html

  • 相关阅读:
    python操作csv,对比两个csv文件某列值
    监控端口和僵尸进程脚本
    openldap创建只读账号
    shell 判断文件内容是否改变
    golang调用shell命令标准输出阻塞管道
    fexpect 源码
    python pexpect 免交互自动恢复gitlab数据
    consul client agent 本地读取key value
    pip 安装三方库报超时
    微信小程序滚动tab的实现
  • 原文地址:https://www.cnblogs.com/huangyoum/p/4154338.html
Copyright © 2011-2022 走看看