1

我现在有一堆看起来像这样的 div 元素:

<div  onclick="window.open('Technology','mywindow');" class="grid" id="technology">                    
     <p class="category-title">Technology</p>        
</div>

我想摆脱 window.open 而是使用 MVC htmlhelper 之类的 actionlink 在用户单击 div 元素时重定向用户。我怎样才能做到这一点?

4

2 回答 2

5

处理此问题的正确方法是使用简单的锚标记。

将“myAction”和“myController”替换为您要将用户重定向到的位置。

<a href="@Url.Action("myAction", "myController")">
    <div class="grid" id="technology">                    
         <p class="category-title">Technology</p>        
    </div>
</a>
于 2013-05-31T03:11:10.960 回答
2

ActionLink将返回一个anchor标签。您可以做的是,您可以通过 将 URL 分配给 div 的属性@Url.Action()。然后,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属性的都将重定向到新页面。

于 2013-05-30T19:06:45.417 回答