我需要有一個自定義路由,如默認的,但這個應該接受數值作爲字符串。像0015.如果我離開參數類型爲INT,傳遞給控制器方法的價值會被截斷到15我需要0015. 所以我做什麼,我創建了以下內容:MVC 4自定義路由str和int
routes.MapRoute(
name: "AccRef",
url: "{controller}/{action}/{acc_ref}",
defaults: new { controller = "Company", action = "Index", acc_ref = "" },
constraints: new { acc_ref = @"^\d{1,4}$" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
而且問題是,據我瞭解,當我現在在整數關口的「ID」
@Url.Action("Method", "Controller", new { id = item.ref})
從視圖中,路由仍然適用第一路線,並調用失敗。
你會如何解決路由問題? 有可能有兩個相同的路由配置,其中一個接受int和另一個字符串?
你能否進一步解釋一下你的期望,以及實際是什麼?即顯示一些鏈接輸出,還是請求路由失敗 –
當我嘗試調用第二種配置方法類型時,這是配置失敗的路由。我用Url.Action描述了一個調用,接受一個操作(int id),但它失敗了。 – elector
我真的不明白你想要做什麼。標準路由不關心它是字符串還是int。您只需在您的操作方法中設置參數類型。那麼,爲什麼不改變你的動作方法來接受一個字符串而不是一個int,它就會工作。 –