2009-08-20 35 views
3

有关ASP.NET MVC的伟大之处之一是路由引擎。当我改变路线时,我喜欢生成我的网址,并且没有任何突破。如何使用ASP.NET MVC在客户端生成URL?

但是,我不知道我怎样可以申请在客户端这一机制。

让我们想象一下一个常见的场景,我有两个下拉列表和第二列表的内容取决于第一个列表中选择的项目。当第一个列表中的选择发生更改时,我想异步加载第二个列表的项目。

的URL,使用默认路由,看起来是这样的:/汽车/ GetModelsForBrand /本田

很容易的......

var url = '/Cars/GetModelsForBrand/' + $("#brands").val(); 

如果我改变路由和URL变为: /本田/ GetModels

我只是打破了在非明显的方式我的代码。

有什么办法来从客户端的URL?

回答

2

我们也有类似的情况,并通过生成的链接操作,然后后来我们的附加参数,它解决了这个问题。我们还有一个案例,我们不确定行动并希望在客户端设置它。在这种情况下,我们生成了一个到Index的链接,并在客户端进行了替换。

通过生成链接,我的意思是使用Html.ActionLink辅助方法

+0

你的意思是这样吗? var url ='<%= Html.BuildUrlFromExpression (x => x.GetModelsForBrand(“[BRANDNAME]”))%>'; VAR brandUrl = url.replace( '\\ [聚力行\\]',$( “#品牌”)VAL()); 不太干净,但我想它可以完成这项工作。 –

+0

是的,这就是我的意思。我不确定在java中有什么字符串替换速度,如果你有很多这些,你可能想找到更好的方法。 –

+0

+1上摆脱魔法字符串 – mxmissile