我现在有一堆看似这样的div元素:
<div onclick="window.open('Technology','mywindow');" class="grid" id="technology">
<p class="category-title">Technology</p>
</div>
我想摆脱window.open,而是使用MVC htmlhelper like actionlink来点击div元素时重定向用户。我怎么能这样做?
答案 0 :(得分:4)
处理此问题的正确方法是使用简单的锚标记。
将“myAction”和“myController”替换为您要将用户重定向到的位置。
<a href="@Url.Action("myAction", "myController")">
<div class="grid" id="technology">
<p class="category-title">Technology</p>
</div>
</a>
答案 1 :(得分:1)
ActionLink
将返回anchor
标记。您可以做的是,您可以通过@Url.Action()
将URL分配给div的属性。然后在JavaScript
中,您可以获取此URL并打开一个新窗口。
<div data-action ="@Url.Action("Text", "ActionName")">
<p class="category-title">Technology</p>
</div>
在jQuery中
$('div').click(function () {
var url = $(this).attr('data-action');
if(url !== undefined)
window.location.href = url;
});
或者在纯JS中,
document.document.getElementsByTagName('div').onclick = function(e) {
var url = this.getAttribute('data-action')
if(url !== null)
window.location.href = url;
}
这样,具有divs
属性的所有data-action
都会重定向到新页面。