A.创建一个Basic类型的MVC项目.
B.在Content文件目录下创建下载文件资源:cs.rar,cs.doc,cs.txt等,见下图右方:
C.修改RouteConfig.cs文件:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Routing; namespace MvcRouteTest { public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "ForbidDownloadRar", url: "Content/Download/a/b/c/{id}.rar", defaults: new { controller = "Home", action = "ForbidDownloadRar" } ); routes.MapRoute( name: "ForgeHtml", url: "china/htzd/{id}.html", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }, ///////////////////路由值得添加约束 constraints: new {id=@"\d+" } ); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace MvcRouteTest.Controllers { public class HomeController : Controller { // // GET: /Home/ public ActionResult ForbidDownloadRar() { return View(); } public ActionResult Index(int? ID) { if (ID.HasValue) { ViewBag.str ="传过来的ID为"+ ID.ToString(); } else { ViewBag.str ="传过来的ID为Null"; } return View(); } public ActionResult GetFile() { return File(Server.MapPath("~/Content/download/a/b/c/cs.rar"), "application/x-rar-compressed","cs.rar"); } } }
Index.cshtml:
@{ ViewBag.Title = "Index"; } <h2>Index</h2> <h2>@ViewBag.str</h2> <h2><a href="@Url.Content("~/Content/Download/a/b/c/cs.rar")">Rar下载测试1-使用Url帮助函数</a></h2> <h2><a href="http://localhost:3310/Content/Download/a/b/c/cs.rar">Rar下载测试2-使用链接地址</a></h2> <h2>@Html.ActionLink("Rar下载测试3-使用GetFile.", "GetFile", "Home")</h2> <hr /> <h2><a href="@Url.Content("~/Content/cs.txt")">下载cs.txt测试--使用Url帮助函数</a></h2> <h2><a href="http://localhost:3310/Content/cs.txt")">下载cs.txt测试--使用链接地址</a></h2> <hr /> <h2><a href="@Url.Content("~/Content/cs.doc")">下载cs.doc测试--使用Url帮助函数</a></h2> <h2><a href="http://localhost:3310/Content/cs.doc")">下载cs.doc测试--使用链接地址</a></h2> <hr /> <h2><a href="@Url.Content("~/china/htzd/8.html")">伪造静态页面--使用Url帮助函数</a></h2> <h2><a href="http://localhost:3310/china/htzd/8.html">伪造静态页面--使用链接地址</a></h2>
@{ ViewBag.Title = "ForbidDownloadRar"; } <h2>禁止下载Rar文件</h2>
RouteTable.Routes.RouteExistingFiles =true;
(也可参阅上图)
G.通过上述代码true或false的修改,来测试Index主页的各种链接功能.
AspNet MVC4 教学-20:Asp.Net MVC4 Routing技术快速应用Demo
原文地址:http://blog.csdn.net/vinglemar/article/details/46225303