【发布时间】:2014-01-29 12:01:22
【问题描述】:
我的 MVC 路由有点生疏了。
我正在使用默认路由
routes.MapRoute(
"Default",
"{controller}/{action}",
new
{
controller = "Default",
action = "Index",
});
我有一个控制器:
public class SomeController : Controller
{
public async Task<ActionResult> Index()
因此,通常可以使用http://mydomain/Some/Index - 或- http://mydomain/Some
在这个特定的控制器上,我想要么拒绝 (404) ~/Some/Index,要么直接将 ~/Some/Index 重定向到 ~/Some。
这在控制器中比较容易实现:
public async Task<ActionResult> Index()
{
var p = Request.Url.Segments;
var last = p.Last();
if(string.Equals(last, "index", StringComparison.InvariantCultureIgnoreCase))
{
return RedirectToActionPermanent("Index");
}
但现在似乎控制器被横切关注点污染了。有没有更清洁的方法?
【问题讨论】:
标签: c# asp.net-mvc routing asp.net-mvc-routing