为什么这不起作用?我怎么能宣布这些?考虑topicid将是一个int,topicname将是一个字符串。
function changetotopicdetail(topicid, topicname) {
$('#loadingAjaxs').show();
$('#flubestext').hide();
$('#contentwrap').load('@Url.Action("Detail", "Topics", new { @id = topicid, @namespace = topicname, @Forum = "all", @page = 0})', function () {
$('#loadingAjaxs').hide();
$('#flubestext').show();
window.history.pushState(null, 'title', '/topics');
})
}
感谢
答案 0 :(得分:7)
根据@alxndr的提示,this question有同样的错误,它用以下代码解决:
function changetotopicdetail(topicid, topicname) {
$('#loadingAjaxs').show();
$('#flubestext').hide();
var link = '@Url.Action("Detail", "Topics", new { @id = -1, @namespace = -2, @Forum = "all", @page = 0})';
link = link.replace("-1", topicid);
link = link.replace("-2", topicname);
$('#contentwrap').load(link, function () {
$('#loadingAjaxs').hide();
$('#flubestext').show();
window.history.pushState(null, 'title', '/topics');
});
}
您错误的是您正在尝试在Razor - view - context中访问两个JavaScript变量(topicid
和topicname
)。 Razor无法访问它,因此这两个变量是未知的。代码正在做的是在JavaScript变量上打印@Url.Action
结果,然后在JavaScript中(您可以访问这些参数)替换链接 joker chars -1
和-2
带参数。所以你得到了你需要的链接。希望我的解释清楚。