我想把我們的鏈接切換到T4MVC,而且我的參數不屬於某個動作的簽名。我們有一個是這樣的路線:T4MVC搜索引擎優化的鏈接
http://www.mydomain.com/{fooKey}/{barKey}/{barID}
==>導致BarController.Details (barID)。
fooKey和barKey只添加到鏈接爲SEO的目的。 (因爲酒吧是FOO的子實體,我們要代表URL中的層次)
到現在爲止,我們將使用
<% =Html.ActionLink(bar.Name, "Details", "Bar", new {barID = bar.ID, fooKey = bar.Foo.Key, barKey = bar.Key}, null)%>
這會導致我們BarController.Details( barID),同時在URL中保留fooKey和barKey。現在
,我們開始與T4MVC,我們試圖將其更改爲
<% =Html.ActionLink(bar.Name, MVC.Bar.Details(bar.ID), null)%>
由於barKey和fooKey不是細節動作簽名的一部分,他們不再在URL中可見。
有沒有辦法解決這個問題,而不必將這些參數添加到動作簽名中?
你的路由如何配置? – PanJanek
相關路線配置如下: routes.Add(新的LowercaseRoute(「go/{fooKey}/{barKey}/{id}」, new RouteValueDictionary(new {controller =「Bar」,action =「Details 「}), new RouteValueDictionary(new {id = @」\ d +「}),new MvcRouteHandler())); LowercaseRoute from here - http://www.coderjournal.com/2008/03/force-mvc-route-url-lowercase/ –
(對不起,可怕的縮進) –