Asp.net Mvc Framework 二 (URL Routing初解)

简介: 什么是URLRouting呢? 你可以使用URL routing来配置一些URL的映射,使用户可以按你的规则来访问网站. 使用URL routing,一定要规定URL模式,它包括一个位置标识,它将在你请求网页时按这个规则返回给你内容.

什么是URLRouting呢?
你可以使用URL routing来配置一些URL的映射,使用户可以按你的规则来访问网站.
使用URL routing,一定要规定URL模式,它包括一个位置标识,它将在你请求网页时按这个规则返回给你内容. 当然,这个创建的规则完全是由你自己定义的.

上回说道:
http://localhost/Views/Home/Index.aspx和
http://localhost/Views/Home/About.aspx并无法访问
Views/Home/Index.aspx

Views/Home/About.aspx
这是怎么回事呢,那我们要怎样才能访问呢
答案是:
http://localhost/Home和
http://localhost/Home/About
于是可能你会问了:为什么呢?(MS很春很晚)
原因是因为页面URL的请求规则在Global.asax.cs中定义的规则所决定

using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Web;
using  System.Web.Mvc;
using  System.Web.Routing;
namespace  MvcApplication2
{
    
/**//// <summary>
    
/// 还是老规矩,按序号看
    
/// </summary>

    public class GlobalApplication : System.Web.HttpApplication
    
{
        
public static void RegisterRoutes(RouteCollection routes) {
            
// 4.注意: 将URL 规则更改为 "{controller}.mvc/{action}/{id}" 即可
            
// 自行支持 IIS6 and IIS7 两种模式
            
// 笔者注:一般的虚拟主机不支持.mvc,.aspx也要检查文件存在
            
// 所以你可以将.mvc换成.ashx或.asbx

            
//1.因为MVC与传统Aspx的最大不同就是访问是访问的Controller/Action
            
//而不是aspx文件,要展现给用户哪一个aspx文件是由Controller决定的
            
//这个是文件默认自带的URLRouting规则,是将Controller/Action/id的访问
            
//模式指向那个Controller
            routes.Add(new Route("{controller}/{action}/{id}"new MvcRouteHandler())
            
{
                Defaults 
= new RouteValueDictionary(new { action = "Index", id = "" }),
            }
);
            
//2.这个URL Routing是为了解决直接访问域名时,会出现找不到文件的情况
            
//所以要采用这个方法将主页Routing到Home/Index上,Add方法现在多用MapRoute方法替代
            routes.Add(new Route("Default.aspx"new MvcRouteHandler())
            
{
                Defaults 
= new RouteValueDictionary(new { controller = "Home", action = "Index", id = "" }),
            }
);
        }


        
protected void Application_Start(object sender, EventArgs e) {
            
//3.这个没什么好讲了,就是在应用程序启动时初始化它
            RegisterRoutes(RouteTable.Routes);
        }

    }

}

注意这一点
URL只与Controller有关

URLRouting是解决传统的
post.aspx?year=1999&month=3&day=8的参数URL变为
/post/1999/3/8/这样的简短漂亮且有意义的URL

以示例中的Global.asax.cs中定义的{controller}/{action}/{id}规则为列
/Home/About/12其实就是访问
Controller="Home" Action="About" 它的参数为 id="12"

那么我们要怎么利用Controller写自己想要的页面呢
还是老话,下回分解

 

相关:

System.Web.Routing入门及进阶 上篇

System.Web.Routing入门及进阶 下篇

System.Web.Routing 的说明文档

 

 

目录
相关文章
|
2月前
|
API C++ Windows
Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法
本文介绍Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法,提供官方下载链接与系统修复工具使用指南。
537 2
|
5月前
|
C++ Windows
.NET Framework安装不成功,下载`NET Framework 3.5`文件,Microsoft Visual C++
.NET Framework常见问题及解决方案汇总,涵盖缺失组件、安装失败、错误代码等,提供多种修复方法,包括全能王DLL修复工具、微软官方运行库及命令行安装等,适用于Windows系统,解决应用程序无法运行问题。
356 3
|
2月前
|
开发框架 安全 .NET
Microsoft .NET Framework 3.5、4.5.2、4.8.1,适用于 Windows 版本的 .NET,Microsoft C Runtime等下载
.NET Framework是Windows平台的开发框架,包含CLR和FCL,支持多种语言开发桌面、Web应用。常用版本有3.5、4.5.2、4.8.1,系统可同时安装多个版本,确保软件兼容运行。
580 0
Microsoft .NET Framework 3.5、4.5.2、4.8.1,适用于 Windows 版本的 .NET,Microsoft C Runtime等下载
|
3月前
|
C++
提示缺少.NET Framework 3.5 安装错误:0x80070002、0x800F0950\0x80004002
.NET Framework常见问题及解决方法汇总,
475 0
|
5月前
|
C++ Windows
WindowsDLL修复专家,MSVCP**、DLL修复vcruntime**、DLL修复、`.Net Framework`缺失、DirectX类DLL修复、VC运行库修复
Windows DLL修复专家是一款专为解决因DLL文件缺失、版本错误导致的软件或游戏无法运行问题的系统工具。它支持一键扫描和修复各类DLL异常,涵盖MSVCP、vcruntime、.NET Framework、DirectX等多种常见问题。具备自动检测、备份还原功能,确保修复过程安全可靠。适用于软件报错、系统异常及新系统适配场景,降低用户手动修复门槛,提升系统稳定性与兼容性。
206 3
|
4月前
.NET Framework 3.5离线安装包合集下载
本文介绍了如何获取和安装.NET Framework运行库离线合集包。用户可通过提供的链接下载安装包,安装过程简单,按提示逐步操作即可完成。安装时可选择所需版本,工具会自动适配架构,无需手动判断,方便高效。
1630 0
使用的是.NET Framework 4.0,并且需要使用SMTP协议发送电子邮件
使用的是.NET Framework 4.0,并且需要使用SMTP协议发送电子邮件
182 1
|
开发框架 缓存 监控
NET Framework 到 .NET 5/6 的迁移是重大的升级
本文详细介绍了从 .NET Framework 4.8 迁移到 .NET 5/6 的过程,通过具体案例分析了迁移策略与最佳实践,包括技术栈评估、代码迁移、依赖项更新及数据库访问层的调整,强调了分阶段迁移、保持代码可维护性及性能监控的重要性。
194 3
|
机器学习/深度学习 编解码 算法
【小样本图像分割-4】nnU-Net: Self-adapting Framework for U-Net-Based Medical Image Segmentation
《nnU-Net: 自适应框架用于基于U-Net的医学图像分割》是一篇2018年的论文,发表在Nature上。该研究提出了一种自适应的医学图像分割框架nnU-Net,能够自动调整模型的超参数以适应不同的数据集。通过2D和3D U-Net及级联U-Net的组合,nnU-Net在10个医学分割数据集上取得了卓越的性能,无需手动调整。该方法强调数据增强、预处理和训练策略等技巧,为医学图像分割提供了一个强大的解决方案。
563 0
【小样本图像分割-4】nnU-Net: Self-adapting Framework for U-Net-Based Medical Image Segmentation

热门文章

最新文章