使 html 链接 href 属性等于 Ajax.ActionLink

Posted

技术标签:

【中文标题】使 html 链接 href 属性等于 Ajax.ActionLink【英文标题】:Make an html links href property equal Ajax.ActionLink 【发布时间】:2014-10-30 08:14:48 【问题描述】:

如果我有一个 html 链接,如何使其 href 属性等于 Ajax.ActionLink? 所以它看起来像这样:

<a href="@Ajax.ActionLink(...)"></a>

actionlink 将返回一个我想要加载到 div 中的部分视图,因此我需要使用 ajax.actionlinks ajaxoptions 属性来执行此操作。

编辑:

我希望我的标签看起来像这样:

<a href="@Ajax.ActionLink(...)">
    <span class="badge pull-right">@Convert.ToString(GPTooLowNew.Count())</span>
    Gross Profit Too Low on Product Sale
</a>

【问题讨论】:

我不是特别熟悉。但我愿意接受任何形式的解决方案。 如果你想要一个 Ajax.ActionLink,那么你将它创建为 @Ajax.ActionLink(...),它会创建 &lt;a&gt; 标签(而不是相反)。我建议你从this article开始 但是我如何获取生成的 标签以包含其他 html 元素,例如 标签?请参阅编辑... 你不能(除非你想创建自己的 html 助手)。您可以创建自己的 html 元素,然后使用 javascript/jquery 处理 &lt;a&gt; 标签单击事件以提供与 @Ajax.ActionLink() 相同的功能,或者您可以使用 javascript/jquery to append 新元素到 &lt;a&gt; 标签 【参考方案1】:

当你使用ajax

这是javascript的方法:

window.onload=function()
var links=document.getElementsByTagName("a");
for(var i=0;i<links.length;i++)
var link=links[i];
var href=link.getAttribute("href").toString();
link.setAttribute("href","@Ajax.ActionLink('"+href+"')"); // Assuming Ellipses are the href parameter passed to Ajax.ActionLink(...) function.

;

把这个包裹在&lt;/head&gt; ... &lt;script type='text/javascript'&gt; Code Here &lt;/script&gt;...&lt;/head&gt;里面 希望能帮助到你。干杯:)。

如果你使用Jquery,那就更简单了。

【讨论】:

感谢您的回复。虽然没有工作。获取 System.ArgumentException。方法“ActionLink”没有重载需要 1 个参数。 试试把link.setAttribute("href","@Ajax.ActionLink('"+href+"')");改成link.setAttribute("href","@Ajax.ActionLink()");希望对你有帮助 这将创建类似(取决于选项)&lt;a href="&lt;a data-ajax="true" data-ajax-method="GET" data-ajax-mode="replace" data-ajax-update="#CustomerList" href="/Home/Germany"&gt;Customer from Germany&lt;/a&gt;"&gt;&lt;/a&gt; 的内容。对我来说毫无意义,当然对浏览器也没有意义!

以上是关于使 html 链接 href 属性等于 Ajax.ActionLink的主要内容,如果未能解决你的问题,请参考以下文章

没有 href 属性的 Ajax.ActionLink 以获得更好的 SEO

使内容宽度等于可视框宽度

HTML常用标签汇总CSS常用属性汇总

采用AJAX + history api做无刷新页面的分页

使AJAX调用尽可能利用缓存特性

让script的type属性等于text/html