在这一天中苦苦挣扎了一天,如何将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>
由于
乔治
答案 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
属性。