asp.net mvc配置.html的url映射问题

问题描述

各位.net大神求助啊~asp.net中的RouteConfig.cs文件下的路由配置默认为:routes.MapRoute(name:"Default",url:"{controller}/{action}/{id}",defaults:new{controller="Home",action="Index",id=UrlParameter.Optional});现在我配置成:routes.MapRoute("Default2","{A}/{B}.html",new{controller="Home2",action="Index"});目的是为了将发往A/B.html的请求由Home2的index处理,但是这样配置一直是404错误,如下图:根据网上的回答,我在web.config中的<system.webServer>中加入<modulesrunAllManagedModulesForAllRequests="true"/>还是不行,将iis的应用程序连接池改为集成模式也是不行,改过iis中的处理程序映射(在其中添加了.html的脚本映射都是不行),但是我将上面的url:{A}/{B}.html改为{A}/{B}就是可以的,郁闷啊,现在是将A/B映射到Home2的index处理是可以的,将A/B.html就不行~有谁能给个解答吗?

解决方案

解决方案二:
MVC的路由机制可以在routes.MapRoute改地址重写
解决方案三:
B指的是action名字,而不是你的网页名称。
解决方案四:
引用

B指的是action名字,而不是你的网页名称。

那我要映射到.html等静态文件该怎么做啊?
解决方案五:
引用3楼dream_successor的回复:

引用
B指的是action名字,而不是你的网页名称。

那我要映射到.html等静态文件该怎么做啊?

用户访问mvc网站,是先跑到action,然后action才返回了view视图。所以不存在用户访问.html的网页,然后调用action。(这样是本末倒置的。)如果action跳转到.html的话,redict就可以了。当然,如果你一定要这么干,那么你可以再html页面的Load加载时,ajax请求action,去做一些操作。并返回一些结果。
解决方案六:
引用

引用3楼dream_successor的回复:引用B指的是action名字,而不是你的网页名称。那我要映射到.html等静态文件该怎么做啊?用户访问mvc网站,是先跑到action,然后action才返回了view视图。所以不存在用户访问.html的网页,然后调用action。(这样是本末倒置的。)如果action跳转到.html的话,redict就可以了。当然,如果你一定要这么干,那么你可以再html页面的Load加载时,ajax请求action,去做一些操作。并返回一些结果。

我是要做一个反向代理,将请求的.html页面映射到mvc的action里处理完毕后再发往真正的请求地址,所以我自己的服务器并不存在这个.html文件,因此在浏览器上输入这个url老是返回404~这应该是默认的iis将.html当成静态文件来处理了,郁闷~

时间: 2024-09-11 04:15:46

asp.net mvc配置.html的url映射问题的相关文章

[转自scott]ASP.NET MVC框架 (第二部分): URL路径选择

英文原文地址:http://weblogs.asp.net/scottgu/archive/2007/12/03/asp-net-mvc-framework-part-2-url-routing.aspx 翻译原文地址:http://blog.joycode.com/scottgu/archive/2007/12/04/112249.aspx 上个月,我发表了我要撰写的系列贴子中的第一篇,这些帖子将讨论我们正在开发的新ASP.NET MVC框架.这个系列的第一个贴子建造了一个简单的电子商务产品列

ASP.NET MVC 4 (一)路径映射

原文:ASP.NET MVC 4 (一)路径映射 正如ASP.NET MVC名字所揭示的一样,是以模型-视图-控制设计模式构建在ASP.NET基础之上的WEB应用程序,我们需要创建相应的程序类来协调处理,完成从客户端请求到结果相应的整个过程: VS2012中一个典型的MVC工程结构是这样的: Controllers文件夹下存放控制类,Models文件下是业务数据模型类,Views文件下则是类似于aspx的视图文件.在传统ASP.NET form的应用程序中,客户端的请求最后都映射到磁盘上对应路径

asp.net 2.0中的url映射

asp.net 介绍 url映射是asp.net 2.0的一个新的特性,它可以让开发人员把一个页映射到另一个url上.如果一个url请求过来,程序会自动把它重新映射到服务端.例如,如果你在程序中配置了把~/Beverages.aspx映射到了~/ProductsByCategory.aspx?CategoryID=1&CategoryName=Beverages,那么当用户在浏览器中输入了http://YourSite.com/Beverages.aspx,服务器会接收后会自动的转到http:/

ASP.NET MVC路由扩展:路由映射

上周我写了三篇文章(一.二.三)详细地介绍了ASP.NET的路由系统.ASP.NET的路由系统旨在通过注册URL模板与物理文件之间的映射进而实现请求地址与文件路径之间的分离,但是对于ASP.NET MVC应用来说,请求的目标不再是一个具体的物理文件,而是定义在某个Controller类型中的Action方法.出于自身路由特点的需要,ASP.NET对ASP.NET的路由系统进行了相应的扩展. 一.基本路由映射 通过前面的介绍我们知道基于某个物理文件的路由映射通过调用代表全局路由表的RouteTab

ASP.NET MVC框架 (第二部分): URL路径选择

第一部分的扼要简述 在这个系列的第一部分里,我们创建了一个电子商务网站,呈示了三类URL: URL格式 行为 URL例子 /Products/Categories 浏览所有的产品分类 /Products/Categories /Products/List/Category 列出一个分类中的产品 /Products/List/Beverages /Products/Detail/ProductID 显示一个特定产品的细节 /Products/Detail/34 我们通过创建象下面这样一个Produ

ASP.NET 2.0如何实现URL映射教程

asp.net|教程|url映射 URL映射是ASP.NET 2.0中提供的新特性.URL映射技术帮助我们将一个特定URL映射为另一个URL.为了帮助理解,我们假设你在站点有一个叫Homepage.aspx的页面来访问主页,所有的用户也都用这个页面来访问你的主页.但由于某些原因,你要将主页改为OriginalHome.aspx.此时使用URL映射让你可以映射到新页面,而不必通知用户. 如果我们设置了URL映射,那么任何用户在URL栏输入Homepage.aspx时,调用的都是OriginalHo

ASP.NET MVC 中获取当前URL、controller、action

一. URL的获取很简单,ASP.NET通用: [1]获取 完整url (协议名+域名+虚拟目录名+文件名+参数) string url=Request.Url.ToString(); [2]获取 虚拟目录名+页面名+参数: string url=Request.RawUrl; (或 string url=Request.Url.PathAndQuery;) [3]获取 虚拟目录名+页面名: string url=HttpContext.Current.Request.Url.AbsoluteP

在ASP.NET MVC 中获取当前URL、controller、action

一.URL的获取很简单,ASP.NET通用: [1]获取 完整url (协议名+域名+虚拟目录名+文件名+参数)  string url=Request.Url.ToString(); [2]获取 虚拟目录名+页面名+参数:  string url=Request.RawUrl;(或 string url=Request.Url.PathAndQuery;) [3]获取 虚拟目录名+页面名:string url=HttpContext.Current.Request.Url.AbsolutePa

ASP.NET MVC 查询提交后URL改变的疑问

问题描述 情况是这样子的初始默认的URL是这样的:localhost:8000/topics/list?type=ASPDotNET 这个页面顶部有4个Tab:Tab1,Tab2,Tab3,Tab4,每切换一个Tab加载不同的数据列表(同一个表的数据,做一个分类),并且带有分页功能点击Tab1变成localhost:8000/topics/list?type=ASPDotNET 点击Tab2变成localhost:8000/topics/list?type=JavaScript 点击Tab3变成