0

我刚刚解决了一个无法通过 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>

非常感谢。

4

1 回答 1

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 页面上应该是唯一的。

于 2012-08-10T19:48:27.217 回答