Url.Action仅呈现控制器和操作,但不呈现id

时间:2010-01-18 19:19:50

标签: javascript asp.net-mvc

我需要为我正在进行的JavaScript搜索呈现一个URL。不幸的是,Url.Action不仅会呈现操作,还会呈现当前的ID。当目前在页面上使用具有id的动作时会发生这种情况。

为了说明Url.Action("List", "Org");将首先呈现Org/List,我可以从中附加要列出的组织。但是,在将位置移至Org/List/12345 Url.Action("List", "Org");后,我们会Org/List/12345呈现Org/List/12345/6789并追加到该位置会产生问题,我最终会遇到Url.Action

我可以使用除/之外的其他方法吗?我已经考虑使用JavaScript来检查// appears in my Site.Master & utilizes the AutoComplete plugin for jQuery $(document).ready(function() { $("input#FindOrg").autocomplete('<%= Url.Action("Find", "Org") %>', { minChars: 3, maxItemsToShow: 25 }).result(function(evt, data, formatted) { var url = '<%= Url.Action("List", "Org") %>/'; window.location.href = url + data; }); }); 的数量并删除部分字符串,但这似乎有点hackish。

{{1}}

2 个答案:

答案 0 :(得分:12)

一些建议:

如果您使用Url.Action("Find", "Org", new { id = "" })会怎样?

或者,尝试使用Url.Content("~/Find/Org")手动构建网址。

答案 1 :(得分:0)

您可以“欺骗”并访问“路由词典”中的“控制器”和“操作”条目。这样就可以只构造你需要的url部分了。唯一需要注意的是,如果更改路由模型,这些例程可能会变得不正确。