我想有對URL默認參數,這樣當用戶在自己發送的參數,如:asp.net mvc3可以Global.asax接受無控制器和無動作參數?
這樣的說法得到(無形)路由先SomeController/SomeAction/ID =參數,然後,如果沒有發現一個404或301.
我希望global.asax RegisterRoutes將具有此功能。任何幫助將不勝感激。
我想有對URL默認參數,這樣當用戶在自己發送的參數,如:asp.net mvc3可以Global.asax接受無控制器和無動作參數?
這樣的說法得到(無形)路由先SomeController/SomeAction/ID =參數,然後,如果沒有發現一個404或301.
我希望global.asax RegisterRoutes將具有此功能。任何幫助將不勝感激。
您可以設置要做到這一點的路線,但它會與「通用」的方式MVC設置的干擾:
routes.MapRoute(
name: "ControllerlessRoute",
url: "{id}",
defaults: new { controller = "SomeController", action = "SomeAction" }
);
爲我工作,謝謝。 – aldosa
路線「/參數」到你的動作,並返回要麼有趣的觀點或404 /三百零二分之三百零一結果取決於你的需要:
routes.MapRoute(
name: "ControllerlessRoute",
url: "{id}",
defaults: new { controller = "SomeController", action = "SomeAction" }
);
class SomeController{
ActionResult SomeAction(id)
{
if (NotFound)
{
return Custom404View();
}
else if (NeedRedirect)
{
return new Custom301View{Url:RedrectUrl};
}
return View();
}
}
定製301查看可以發現http://forums.asp.net/p/1337938/2700733.aspx的樣品。
public string Url { get; set; }
public override void ExecuteResult(ControllerContext context)
{
context.HttpContext.Response.StatusCode = 301;
context.HttpContext.Response.RedirectLocation = Url;
context.HttpContext.Response.End();
}
寫作問題:請避免添加簽名,因爲您已將其添加到您的用戶名中。如果您碰巧擁有比您的用戶名更多的名稱 - 請考慮修改用戶名。 –