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" }
});
自定义路由如果 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" }
});
相关文章推荐
- asp.net MVC 强类型视图表单Ajax提交的注意事项
- 发布Asp.Net MVC 注意事项
- ASP.NET MVC 使用MSBuild生成的几个注意事项
- Asp.net MVC——httppost与httpget注意事项
- asp.net mvc 中对easyui的引用文件使用Bundle的注意事项
- asp.net开发mysql注意事项
- asp.net web api 开发时应当注意的事项
- 64位系统使用VS2010开发32位ASP.NET应用--注意事项
- Asp.net MVC中使用KindEditor上传本地图片的注意事项
- ASP.NET MVC+EF在服务端分页使用jqGrid以及jquery Datatables的注意事项
- ASP.NET安全[开发ASP.NET MVC应用程序时值得注意的安全问题](转)
- ASP.NET MVC+EF在服务端分页使用jqGrid以及jquery Datatables的注意事项
- ASP.NET安全[开发ASP.NET MVC应用程序时值得注意的安全问题](转)
- ASP.NET MVC+EF在服务端分页使用jqGrid以及jquery Datatables的注意事项
- Visual Studio Community 2017中修改ASP.NET MVC项目中类名称空间的一点注意事项
- 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获
- asp.net mvc DropDownList控件 数据库中取值Select的选项注意事项
- ASP.NET安全[开发ASP.NET MVC应用程序时值得注意的安全问题](转)
- asp.net MVC EFCodeFirst 生成数据库注意事项
- 在ASP.NET MVC中使用WebApi注册路由注意事项