您的位置:首页 > 编程语言 > ASP

asp.net mvc 开发注意事项

2012-02-20 11:00 302 查看
自定义路由在参数个数相同的情况下是不能够通过参数名称来区分的,只能通过写死的 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" }
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐