我正在尝试使用jQuery这样添加Html.ActionLink
a.append("<li>@Html.ActionLink("e-TCGB","Inbox","Folder",new { Type = "1",DocumentTypeId = "3" },null)+"</li>");
它给出了错误。
在javascript和jQuery中缺乏经验我不知道错误是因为错误的字符串参数还是因为做了非常错误的事情。
我的猜测是我正在犯一个转义字符错误,但正如我所说,我不知道我所做的事情是否也可能。
答案 0 :(得分:2)
@ Html.ActionLink是MVC中的一个辅助方法,旨在用于Razor视图。它在服务器上执行,并在Razor视图呈现为HTML时进行处理。
jQuery是一个在浏览器上使用的JavaScript库,因此在浏览器收到HTML后会执行此处的执行。
总结一下,不可能在浏览器上执行c#代码(ActionLink),因为它是基于.net的服务器端方法。
答案 1 :(得分:2)
'Razor是在运行时编译的 - 意味着它已经完成了你的jQuery代码执行之前的事情。
您可以直接使用超链接:
var li = $('<li>');
var link = $('<a href="/folder/inbox/?type=1?documenttypeid=3">e-TCGB</div>');
li.append(link);
a.append(li);
<强>更新强>
上面,您可以看到使用jQuery生成元素的两个示例。第一个是生成新<li>
元素的简写:
$('<li>');
第二个是生成超链接标记。如果要添加属性信息,可以通过多种不同的方式添加属性信息,但我更喜欢在生成元素时以长格式编写标记:
$('<a href="/folder/inbox/?type=1?documenttypeid=3">e-TCGB</div>');