我刚刚用ActionLink解决了一个无法解决的问题(根据我的有限知识),所以我使用了常规的超链接。
当这两个链接在页面上呈现时,它们的样式非常相似,因为它们传递相同的css条件,但它们在我注意到的两种方式上并不完全相同:
我的印象是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>
非常感谢。
答案 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页面上应该是唯一的。