asp.net-mvc – ASP.Net MVC路由策略
我一直在玩ASP.Net MVC一段时间了.我发现最难解决的是路由表.
我发现大多数示例都保留了默认路由.我发现这会导致很多错误,其中默认路由重定向到HomeController,并且操作不存在.导致奇怪的错误消息,您可能会看到一个简单的404. 我最终选择了一个路由设置,在那里我明确定义了我想允许的所有控制器/动作组合,最后一个catch-all重定向到显示合理错误消息的404页面. 我在这里错过了什么吗?或者这确实是做事的好方法吗? 看看我得到的答案,我想我最好澄清一下这个问题. 我试图愚弄我正在建设的网站的路由方案.我注意到,当我离开默认的{controller} / {action} / {id}路由时,我希望显示404错误的所有类型的URL实际上都会被路由到HomeController并且操作无效并导致一些丑陋的错误而是消息. 我有点困惑,因为大多数代码示例都留在默认路由中.它有原因还是可以删除它? 我现在使用的方案看起来有点像这样 routes.MapRoute( "About","About",new {controller = "Page",action = "About"} ); routes.MapRoute( "SignIn","SignIn",action = "SignIn"} ); routes.MapRoute( "SignOut","SignOut",action = "SignOut"} ); routes.MapRoute( "Authenticate","Authenticate",new { controller = "Authentication",action = "Authenticate" }); routes.MapRoute("CatchAll","{*url}",new { controller = "Error",action = "Http404" }); 我已经为系统中的每个操作指定了一条路线.并且最后要显示404.这是一个很好的方法,还是有一种更简单的方法使路由方案万无一失? 解决方法
如果这是您使用的默认路由:
routes.MapRoute( "Default","{controller}/{action}/{id}",new { controller = "Home",action = "Index",id = "" } ); 然后默认情况下将使用“HomeController”和“Index”操作,除非您的URL另有说明. 例如: “http://www.something.com/”将使用Home控制器的Index操作,因为这些是默认控制器和操作. “http://www.something.com/foo”将使用Foo控制器的Index操作,因为“Index”是默认操作. “http://www.something.com/foo/bar”将使用Foo控制器的“bar”动作 “http://www.something.com/foo/bar/1”将使用Foo控制器的“bar”操作,将“1”作为“id”参数传递 如果您没有“FooController”,任何以“http://www.something.com/foo”开头的内容都将失败.同样,如果您的FooController没有“Bar”操作,那么“http://www.something.com/foo/bar”将失败. 您可能已经知道我上面发布的所有内容.如果是这种情况,您会发布失败的网址,以便我们更好地提供帮助吗? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 获取Controller.OnException中的Action和Ac
- asp.net – 如何在没有实体框架的MVC中使用SimpleMembershi
- 在运行ASP.NET的Web场中,您使用什么进行分布式缓存?
- 使用PUT的ASP.NET Web API路由
- asp.net-mvc-2 – 用于实现CanExecute样式命令的ASP MVC 2模
- asp.net – 如何为.Net网站,Windows服务等创建安装程序?
- asp.net – 使用NuGet发布可执行文件和网站
- asp.net-mvc-4 – Windows身份验证和Asp.Net Web API
- asp.net-mvc – 是否违反命令查询分离命令运行查询?
- 寻找ASP.NET详细信息表单中数据绑定的指导
- 令人敬畏的ASP.NET和C#教程初学者
- 如何在ASP.NET应用程序中唯一标识客户端计算机?
- 是否可以还原ASP.NET预编译?
- asp.net-mvc – ASP.NET MVC提醒我旧的经典ASP意
- asp.net-mvc – MVC DropDownList SelectedValue
- asp.net-mvc – 在ASP.NET MVC中使用线程设置当前
- asp.net – jquery禁用特定时间的按钮
- asp.net-mvc – 未找到部分视图“First.cshtml”
- asp.net-mvc – 防止Google分析在开发环境ASP.NE
- asp.net-mvc – 在哪里将日期转换为UTC?