asp.net mvc 开发注意事项

自定义路由在参数个数相同的情况下是不能够通过参数名称来区分的,只能通过写死的 controllerName 和 actionName 来区分调用的路由

自定义路由如果 controllerName 和 actionName 没有写死,那么多参数的路由会匹配通过少参数的路由的,因此使用多参数的路由,不会继续往下执行使用少参数的路由,前提是多参数路由定义在少参数路由的前面

Html.RouteLink 就算是你指定了自定义的路由名称,那么在执行的时候,还是会从第一个路由开始遍历匹配一遍所有的路由,如果在你指定的路由名称上面碰到了匹配的路由,那么就会使用匹配到的路由,不会继续执行到你指定的路由

Html.RouteLink 在动态更改 URL 里的某一个参数值时,需要显式的保存住要更改参数后面的参数值,如果不显式的赋值保存住,那么在跳转的时候会丢掉动态修改后的所有参数,因此在自定义路由时,可能需要动态修改的参数尽量放在路由的最后位(如 页码)

如果程序跳转出错,提示值为 null 但 URL 里却明明有值时,那么这时候你就需要关注下是不是程序使用错了自定义的路由
RouteDebug.DLL 路由调试器,把这个 DLL 文件引用到项目里,然后在 Global 文件的 Application_Start() 事件里注册一下
RegisterRoutes(RouteTable.Routes);
//Route 调试
//RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);
运行程序页码就会显示当前 URL 所匹配的所有路由,程序使用的就是页码显示的第一个匹配的路由,这样就可以判断程序是不是调用错了路由报错

Shared 文件夹是应用程序当中 用户自定义控件,模板页等的默认文件夹,程序遇到调用 自定义控件 或者 模板页 时会自动的在该文件夹下寻找
如果想要把 自定义控件 或者 模板页 放到其他的文件夹呢,那么就需要在 Global 文件的 Application_Start() 事件里显式的标明一下
RegisterRoutes(RouteTable.Routes);
//Route 调试
//RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);
//指明自定义控件引用的路径
ViewEngines.Engines.Add(new WebFormViewEngine
{
       ViewLocationFormats = new string[] { "~/Views/Shared/ErrorPage/{0}.aspx" },
       PartialViewLocationFormats = new string[] { "~/Views/Shared/UserControls/{0}.ascx" }
});

转载于:https://www.cnblogs.com/duogemajia/archive/2012/02/20/2359072.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值