javascript一个链接问题,传递正确的值而不是在循环中工作

时间:2013-09-29 11:32:56

标签: javascript asp.net-mvc

我有这个代码,因为我需要在循环中加载带有不同参数的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)

1 个答案:

答案 0 :(得分:1)

1)changetopicss应该是一个班级&#39;不是&#39; id&#39;锚。由于预期id在整个页面中是唯一的,因此只选择具有此id的第一个元素并附加单击处理程序。

2)对URLEncode字符串的安全性之前,在URL中使用它们就像在你的代码短名称中一样,可以在其中有空格,使用javascript&#39; s的编码组件()