如何使用div元素重定向MVC htmlhelper?

时间:2013-05-30 18:54:16

标签: asp.net-mvc html-helper actionlink

我现在有一堆看似这样的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元素时重定向用户。我怎么能这样做?

2 个答案:

答案 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都会重定向到新页面。