我有一个使用大量 AJAX 的网站,为了将 Urls 之类的东西放在一个合理的地方,我在页面上的脚本块中输出所需的 Urls,然后在 Javascript 中使用它们稍后归档。
这方面的一个例子是:
在 Index.cshtml 中
<script>
if (!app.frontoffice)
app.frontoffice = {};
if (!app.frontoffice.urls)
app.frontoffice.urls = {};
if (!app.frontoffice.urls.index)
app.frontoffice.urls.index = "@Url.Action("index", "frontoffice", new { area = string.Empty, id = string.Empty })";
</script>
在某处的 JS 文件中
$(function() {
$("myButton").click(function(e) {
$.ajax({
url: app.frontoffice.urls.index,
data: {
id: 55
},
success: ...
error: ...
});
});
});
问题是生成的 Url 是这样创建的 - /frontoffice
,请注意它不包括index
操作。这是因为在生成它的时候我们给了它一个empty id
,所以当我们开始使用它时,请求的Url实际上是/frontoffic/55', not
/frontoffice/index/55'..
UrlHelper
似乎正在从 url 中剔除操作名称。我可以使用另一种方法来不从 URL 中删除项目吗?- 我希望能有一个清晰的、可重复使用的解决方案,因为这种事情发生在整个网站上。
谢谢基
龙