您好我有一些代码:
<ul>
<li data-id="1"></li>
<li data-id="2"></li>
<li data-id="3"></li>
</ul>
在剧本中:
$('li').click(function () {
window.location.href = '@Url.Action("View", "People", new { id = $(this).data('id')})';
});
我想要实现的是,当用户点击列表项时,它会重定向到:
人/视图/ ID
其中id是列表项的id属性。
麻烦是我无法弄清楚代码有什么问题。
部分$(this).data('id')有一个波浪形的下划线并说:
预期','或'}'。
对不起,这可能是一个非常愚蠢的问题,但我无法正确解决这个问题。
答案 0 :(得分:1)
您无法混合服务器端和客户端端代码。他们不互相交流。
我猜你需要做这样的事情:
window.location.href = '@Url.Action("View", "People")' + "/" + $(this).data('id');
答案 1 :(得分:0)
Url.Action方法在javascript中不起作用。它是服务器端MVC的一部分。您可以直接在MVC视图中生成链接,例如:
<ul>
<li data-id="1"><a href="@Url.Action("View", "People", new { id = 1})">...</a></li>
<li data-id="2"><a href="@Url.Action("View", "People", new { id = 2})">...</a></li>
<li data-id="3"><a href="@Url.Action("View", "People", new { id = 3})">...</a></li>
</ul>
data-id属性可能已过时。如果您仍然需要id客户端,我建议使用隐藏字段。
答案 2 :(得分:-1)
您可以使用以下代码
window.location.href = '@Url.Action("View", "People", new { id = $(this).attr("data-id") })';