使用MVC,我有我的觀點HTML表單幫手:ASP.Net MVC路由問題與Html.BeginForm
using (Html.BeginForm("ActionOne", "ControllerOne")) ...
使用默認路由,輸出爲action屬性爲預期:
<form action="/ControllerOne/ActionOne" ...
但註冊看似沒有匹配的新路線會影響輸出。
路由代碼:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.Add("testRoute", new Route("MyUrl", new MvcRouteHandler()));
routes.MapRoute("Default", "{controller}/{action}", new { controller = "Home", action = "Index"});
}
輸出:
<form action="/MyUrl?action=ActionOne&controller=ControllerOne"
這是通過設計還是我mising一些基本的東西?
乾杯!
嘿,那有效。它仍然非常理想,因爲在全球範圍內更改路由將需要您編輯每個匹配項( – theGecko 2009-11-18 10:02:07
)我同意它不是理想的,可能需要一些工作才能更新BeginForm的所有用法 - > BeginRouteForm(如果已完成)在一個現有的webapp上,但是如果你將所有表單設置爲使用默認路由(如上所述),那麼只要你保持該路由完好無損,對路由的任何其他更改不會影響表單,因此它是一個強大的解決方案。 – 2009-11-18 10:18:04