繁体   English   中英

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

[英]Url.Action only render controller and action but not id

我需要为我正在进行的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来检查/删除部分字符串的数量,但这看起来有点像hackish。

// 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;
    });
});

几点建议:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM