asp.net-mvc – 为什么这个MVC路由不起作用?
发布时间:2020-05-24 20:58:34 所属栏目:asp.Net 来源:互联网
导读:这里是我的global.asax文件的两条路线.我试图去第二条路线,我得到一个默认404资源找不到错误. 当我删除第一个路由(在本例中列出),它是有效的. 请问如何解决这个问题? global.asax代码片段 // GET: /user/PureKrome/Alert/69routes.MapRoute( User-Alert-Deta
|
这里是我的global.asax文件的两条路线.我试图去第二条路线,我得到一个默认404资源找不到错误. 当我删除第一个路由(在本例中列出),它是有效的. 请问如何解决这个问题? global.asax代码片段 // GET: /user/PureKrome/Alert/69
routes.MapRoute(
"User-Alert-Details","user/{displayName}/alert/{alertId}",new { controller = "Account",action = "AlertDetails",alertId = 0 });
// GET: /user/PureKrome/Alert/create
routes.MapRoute(
"User-Alert-Create","user/{displayName}/alert/create",action = "AlertCreate" });
解决方法你的第一条路线是一条“贪婪”路线,并且会乐意接受最后一个参数中的“create”作为alertId.看来,您打算将alertId参数设置为仅数字,因此您应该添加一个约束来告诉路由系统该最后一个参数必须是数字.见这tutorial. 例如: // GET: /user/PureKrome/Alert/69
routes.MapRoute(
"User-Alert-Details",alertId = 0 },new { alertId = @"d+" });
// GET: /user/PureKrome/Alert/create
routes.MapRoute(
"User-Alert-Create",action = "AlertCreate" });
请注意,您还可以反转路由的顺序,但即使这样,您仍然应该包含一个约束,以使alertId永远是一个数字. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 如何在窗体发布后检查我的视图中的TempData
- asp.net – 按IN子句排序SQL Server结果
- .net – 如何正确处理n层应用程序中的错误?
- asp.net-mvc – ASP.NET MVC路由和静态数据(即图像,脚本等)
- asp.net-mvc – ASP.NET MVC 5身份应用程序用户作为外键
- asp.net-mvc – ASP.NET MVC DropDown编辑器模板
- ASP.NET Master Pages等效于Java
- asp.net-mvc – MVC打开pdf文件
- Asp.net mvc dataannotation MaxLength验证不起作用
- asp.net-mvc-4 – 无法获取MVC 4 FileExtensions属性来处理
推荐文章
站长推荐
- asp.net-mvc-3 – 提交后的mvc3复选框值
- ASP.NET十七种正则表达试
- 从2.0到3.5的ASP.NET框架效应?
- asp.net – 如何在EF DbContext和AspNet Members
- 有没有办法通过ASP.NET和app_offline.htm来显示图
- asp.net-mvc – ASP.Net T4MVC文件未自行更新
- asp.net-mvc – PRG模式是否与AJAX表单帖子不兼容
- asp.net-mvc – Action()和RenderAction()之间的
- asp.net – 将linq查询结果转换为datatable C#
- asp.net-mvc-3 – 如何在Razor中创建一个else if
热点阅读
