0

我有這樣的MVC圖路線如何使用htmlhelpers或JavaScript從URL獲取路由值?

routes.MapRoute(
    name: "Authenticated", 
    url: "{controller}/{action}/{foo}/{bar}", 
    defaults: new { controller = "Home", action = "WelcomePage", Foo = "0", Bar = "0" } 
); 

和URL

http://localhost/mysite/controller/action/2/1 

如何我可以用JavaScript收到的21?我希望儘可能使用盡可能少的子字符串工作,因爲那樣會輕易導致我想的很多錯誤。

請注意,有時URL可能以?filter = xx結尾。

我已經tryed

var foo= ViewContext.RouteData.Values["foo"]; 
var bar= ViewContext.RouteData.Values["bar"]; 

alert('foo: ' + foo); 
alert('bar: ' + bar); 

結果: e: ReferenceError: ViewContext is not defined

+0

哦,剃刀,我忘了@ {} – radbyx

回答

1

寫由剃刀引擎處理服務器端代碼,您有@前面加上你的發言。這隻有在Javascript被嵌入到視圖中時纔有效。

你也可以用Javascript來做到這一點。這樣的事情應該做的伎倆

var urlParts = location.href.split('/'); 
var foo = urlParts[6]; 
var bar = urlParts[7]; 
+0

分裂串遠遠將是最快的,我看不出有可讀性有什麼問題都 –

+0

我會嘗試,在第一格朗斯看起來很好。只有擔心,如果6和7會改變 – radbyx

+0

你知道我該如何解決這個問題嗎? e:TypeError:location.split不是函數 – radbyx

相關問題