我在我的MVC路由有点生疏。删除/索引从浏览器URL末尾
我使用的
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");
}
但现在看来,像控制器过得去横切关注点污染。有更清洁的方法吗?