我有一个网站,使用大量使用AJAX,并为了保持东西像Urls在一个明智的地方,我输出所需的网址在一个脚本块在页面上,然后在稍后的Javascript文件中使用它们。使用Url.Action没有路由值截断网址
这方面的一个例子是:
在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
操作。这是因为当它产生我们给它一个空id
,所以当我们来使用它,被请求的URL实际上是/frontoffic/55', not
/frontoffice /指数/ 55' ..
的UrlHelper
似乎被扑杀动作名称来自url。有没有另一种方法可以使用,不会从Url中删除项目? - 我希望通过一个清晰的,可重复使用的解决方案逃脱,因为这种事情发生在整个网站。
感谢
基隆