单击ActionLink id并将其作为函数参数传递

时间:2013-02-05 10:36:00

标签: jquery ajax asp.net-mvc actionlink

在这一天中苦苦挣扎了一天,如何将actionlink id传递给jquery ajax调用以启用部分页面更新。

<li>@Html.ActionLink(@item.strCountry, "Index", "Weather", new { id = Regex.Replace(@item.strCountry, " ", "-") }, new { @class = "getCities" })</li>

的jQuery

<script>
 $(function () {
     $(".getCities").click(function () {
         $.ajax({
             //url: this.href,
             url: '@Url.Action("pvDisplayListOfWeatherCities", "Weather")',
             type: 'GET',
             data: { id: $('#id').val() },
             dataType: 'Json',
             success: function (result) {
                 alert(result.test);
             },
             error: function () {
                 alert("error");
             }
         });
         return false;
     });
 });
</script>

由于

乔治

3 个答案:

答案 0 :(得分:1)

如果我正确理解了这个问题,那么你就改变了:

data: { id: $('#id').val() },

data: { id: $(this).attr('id') },

修改 - 您只需要data: { id: $(this).text() },

答案 1 :(得分:1)

将参数添加为HTML属性

<li>@Html.ActionLink(@item.strCountry, "Index", "Weather", 
    new { id = Regex.Replace(@item.strCountry, " ", "-") }, 
    new { @class = "getCities", data_param1 = Regex.Replace(@item.strCountry, " ", "-") })</li>

这将呈现:

<li><a class="getCities" href="/Weather/Index/val" data-param1="val">country</a></li>

然后使用jQuery .attr()方法:

<script>
 $(function () {
     $(".getCities").click(function () {
         $.ajax({
             //url: this.href,
             url: '@Url.Action("pvDisplayListOfWeatherCities", "Weather")',
             type: 'GET',
             data: { id: $(this).attr("data-param1") }, // <-- param1 etc.
             dataType: 'json',
             success: function (result) {
                 alert(result.test);
             },
             error: function () {
                 alert("error");
             }
         });
         return false;
     });
 });
</script>

答案 2 :(得分:1)

您没有为此链接设置id属性,您只需设置用作构建链接本身的参数的ID。您只需为此标记添加id属性

即可
<li>@Html.ActionLink(@item.strCountry, "Index", "Weather", 
    new { id = Regex.Replace(@item.strCountry, " ", "-") }, 
    new { @class = "getCities", @id = Regex.Replace(@item.strCountry, " ", "-")})</li>

如果您希望它与链接中的id参数相同。然后更新此

data: { id: $('#id').val() },

到这个

data: { id: $(this).attr('id') },

获取此HTML标记的实际id属性。