关于ActionLinks和普通a-tag超链接的小型MVC样式问题

时间:2012-08-10 19:44:40

标签: html css ajax asp.net-mvc-3

我刚刚用ActionLink解决了一个无法解决的问题(根据我的有限知识),所以我使用了常规的超链接。

当这两个链接在页面上呈现时,它们的样式非常相似,因为它们传递相同的css条件,但它们在我注意到的两种方式上并不完全相同:

  • 可以在不在ActionLink
  • 上的超链接上选择文本
  • 当鼠标悬停在ActionLink上时,光标变为手而不是指针,超链接与指针保持一致。

我的印象是ActionLink呈现的超链接可以解释为什么它们都是由css设计的,但显然存在一些差异。

有没有人知道如何解决这个问题,或者提出另一个解决方案来用一个超链接替换ActionLink来调用AJAX函数(返回一个PartialView)?

更新

这是呈现的HTML。第一个是超链接,第二个是ActionLink。

<li><a id="load-partial">Test</a></li> 
<li><a href="/Contact/List">Contact</a></li>

我在超链接中有id的原因是它将运行以下脚本以在特定div中创建视图。我似乎无法使用ActionLink复制它,因为它只返回它自己的视图而没有布局视图并且完全没有格式化。

<script>
$(document).ready(function () {
    $('#load-partial').click(function () {
        $.ajax({
            url: '/Contact/List/',
            datatype: 'html',
            success: function (data) {
                $('#adminmain').empty().html(data);
            }
        });
    });
});
</script>

非常感谢。

1 个答案:

答案 0 :(得分:3)

ActionLink只不过是一个发出HTML A 标记的服务器端帮助方法。它没有什么特别之处。

如果您发现行为/呈现方面存在差异,请查看呈现的HTML源代码并查找其中的差异。

使用ActionLink无法完成的任务很少,需要您手动编写 A 标记。您是否发布了一个关于使用它无法解决的问题的单独问题?

更新(基于您发布的HTML)

超链接缺少 href ,因此点击时不会执行任何操作。

如果您需要为ActionLink添加ID,您可以执行以下操作:

@Html.ActionLink("Contact (this is the text)", "List", "Contact", 
    new { someQueryStringParameter = 42 }, 
    new { id="load-partial" })

该示例显示了如何生成

<a id="load-partial" href="/Contact/List?someQueryStringParameter=42">Contact (this is the text)</a>

请记住,ID在给定的HTML页面上应该是唯一的。