可以在 LI 中插入 HTML.Actionlink 吗?

Is possible to insert HTML.Actionlink inside LI?

我正在尝试使用以下代码在 li 元素中插入一个 @HTML.ActionLink 元素:

    var ul = document.getElementById('container');  
    var enlace = '@Html.ActionLink("Details", "Details", "Elements", new { id = "5" }, null)';

    var li = document.createElement('li');
    li.appendChild(document.createTextNode('My title'));
    li.appendChild(document.createElement('br'));

    ///////////////////////////////////////////////
    li.appendChild(document.createElement(enlace));
    ///////////////////////////////////////////////

    ul.appendChild(li);

可能吗?

您将整个 HTML 元素传递给 document.createElement(),它只需要一个标签名称。本质上,您正在这样做:

document.createElement('<a href="someLink">some text</a>')

而函数是这样工作的:

document.createElement('a');

您可以通过将元素的创建与元素的 HTML 的设置分离到自定义服务器生成的 HTML 来解决此问题。仅替换注释包围的代码,它可能如下所示:

///////////////////////////////////////////////
var enlaceElement = document.createElement('a');
enlaceElement.innerHTML = enlace;
li.appendChild(enlaceElement);
///////////////////////////////////////////////

我有一个完整的演示 here