asp.net mvc5 伪静态

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

时间: 2024-10-03 07:34:44

asp.net mvc5 伪静态的相关文章

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

ASP.NET MVC5路由系统机制详细讲解

请求一个ASP.NET mvc的网站和以前的web form是有区别的,ASP.NET MVC框架内部给我们提供了路由机制,当IIS接受到一个请求时,会先看是否请求了一个静态资源(.html,css,js,图片等),这一步是web form和mvc都是一样的,如果不是则说明是请求的是一个动态页面,就会走asp.net的管道,mvc的程序请求都会走路由系统,会映射到一个Controller对应的Action方法,而web form请求动态页面是会查找本地实际存在一个aspx文件.下面通过一个ASP

学习ASP .NET MVC5官方教程总结(七)Edit方法和Edit视图详解

学习ASP .NET MVC5官方教程总结(七)Edit方法和Edit视图详解 在本章中,我们研究生成的Edit方法和视图.但在研究之前,我们先将 release date 弄得好看一点.打开Models\Movie.cs 文件.先添加一个引用: <span style="font-size:14px;">using System.ComponentModel.DataAnnotations;</span> 然后在Movie类中添加以下代码: [Display(

学习ASP .NET MVC5官方教程总结(六)通过控制器访问模型的数据

学习ASP .NET MVC5官方教程总结(六)通过控制器访问模型的数据 在本章中,我们将新建一个MoviesController 控制器,并编写获取电影数据的代码,使用视图模板将数据展示在浏览器中. 在进行下一步之前,你需要先编译应用程序,否则在添加控制器的时候会出错. 在解决方法资源管理器的Controllers文件夹右键,选择"添加">"新建搭建基架项": 在"添加支架"对话框,选择 包含视图的MVC 5控制器(使用 En),然后单击

ASP.NET MVC5(二):控制器、视图与模型

前言 本篇博文主要介绍ASP.NET MVC中的三个核心元素:控制器.视图与模型,以下思维导图描述了本文的主要内容. 控制器 控制器简介 在介绍控制器之前,简单的介绍一下MVC工作原理:URL告知路由机制该使用哪个控制器(Controller),调用该控制器中的哪个方法(Action),并为该方法提供需要的参数.控制器响应用户的输入,在响应时修改模型(Model),并决定使用哪个视图(View),并对该视图进行渲染.注意:MVC模式提供的是方法调用结果,而不是动态生成的页面. 以上内容对于初学者

ASP.NET MVC5(一):ASP.NET MVC概览

ASP.NET MVC概览 ASP.NET MVC是一种构建Web应用程序的框架,它将一般的MVC(Model-View-Controller)模式应用于ASP.NET框架. ASP.NET MVC模式简介 MVC将Web应用程序划分为三个主要的部分,以下是MSDN给出的定义: 模型(Model):模型对象是实现应用程序数据域逻辑的应用程序部件. 通常,模型对象会检索模型状态并将其存储在数据库中. 例如,Product 对象可能会从数据库中检索信息,操作该信息,然后将更新的信息写回到 SQL S

ASP.NET MVC5(三):表单和HTML辅助方法

表单的使用 Action和Method特性 Action特性用以告知浏览器信息发往何处,因此,Action特性后面需要包含一个Url地址.这里的Url地址可以是相对的,也可以是绝对的.如下Form标签向Bing的search页面发送一个搜索词(输入元素的名称为q). <form action="http://www.bing.com/search"> <input name="q" type="text" /> <i

学习ASP .NET MVC5官方教程总结(八)搜索查询

学习ASP .NET MVC5官方教程总结(八)搜索查询 在本节中,我们为 Index 方法添加查询功能,使我们能够根据电影的题材或名称进行查找. 首先,我们需要更新 MoviesController 的 Index 方法,代码如下: public ActionResult Index(string searchString) { var movies = from m in db.Movies select m; if (!String.IsNullOrEmpty(searchString))

ASP.NET MVC5 PagedList分页

ASP.NET MVC是目前ASP.NET开发当中轻量级的Web开发解决方案,在ASP.NET MVC概述这篇译文当中,已经详细的介绍了ASP.NET MVC与Web Forms的区别以及各自的适用场景.由于ASP.NET MVC尤其适合网站的开发(Web Forms更适合业务系统的开发),目前成为很多网站开发者的首先框架. 这里举个典型的例子(表格的分页),以此熟悉一下ASP.NET MVC的开发.开发环境:Windows 8.1企业版+VS2013旗舰版+SQL Server 2014. 首