我有这个代码,因为我需要在循环中加载带有不同参数的url.action(多个链接)
我有几个问题,首先只有foreach循环中的第一个链接实际上做了什么
第二个问题是控制器期望id作为int而name作为字符串不工作所以没有加载?如果我手动更改“链接”中的id和字符串,则可以正常工作
我已将两个值都放入window.alert并且它显示javascript正在获取正确的值,只是不认为它们被控制器收到正确的字符串/ int ??
的Javascript
<script type="text/javascript">
$('#changetopicss').click(function () {
$('#loadingAjaxs').show();
$('#flubestext').hide();
var link = '@Url.Action("Detail", "Topics", new { @id = -1, @name = -2, @forum = "all", @page = 0})';
link = link.replace("-1", $(this).data('id'));
link = link.replace("-2", $(this).data('shortname'));
// window.alert(dataname);
$('#contentwrap').load(link, function () {
$('#loadingAjaxs').hide();
$('#flubestext').show();
window.history.pushState(null, 'title', '/topics');
});
});
</script>
为每个循环动态创建的链接
<a id="changetopicss" data-id='@following.Id' data-shortname='@following.ShortName'>@following.Title</a>
控制器标题
public ActionResult Detail(int id, string name, string forum, int page)
答案 0 :(得分:1)
1)changetopicss应该是一个班级&#39;不是&#39; id&#39;锚。由于预期id在整个页面中是唯一的,因此只选择具有此id的第一个元素并附加单击处理程序。
2)对URLEncode字符串的安全性之前,在URL中使用它们就像在你的代码短名称中一样,可以在其中有空格,使用javascript&#39; s的编码组件()