如何在JavaScript中使用HTML语法?

如何在JavaScript中使用HTML语法?,javascript,asp.net-mvc-3,Javascript,Asp.net Mvc 3,我正在开发MVC应用程序并使用razor语法 我想在cshtml文件中使用JavaScript中的HTML代码,但我对如何在JavaScript中使用razor语法中的双引号感到困惑。那有关系吗 这是一行代码: <span class="EmpName"> @Html.ActionLink(item.Owner.FullName, "Details", "EMployee", new { id = item.OwnerId }, new { @style = "color:#1A66

我正在开发MVC应用程序并使用razor语法

我想在cshtml文件中使用JavaScript中的HTML代码,但我对如何在JavaScript中使用razor语法中的双引号感到困惑。那有关系吗

这是一行代码:

<span class="EmpName"> @Html.ActionLink(item.Owner.FullName, "Details", "EMployee", new { id = item.OwnerId }, new { @style = "color:#1A6690;" })</span>

@Html.DisplayFor(ModelItem => item.CommentDateTime)

<span class="EmpName"><button type="button" id = "@item.Id" class="deleteComment">Delete</button></span>
@Html.ActionLink(item.Owner.FullName,“详细信息”,“员工”,新的{id=item.OwnerId},新的{@style=“color:#1A6690;”)
@DisplayFor(ModelItem=>item.CommentDateTime)
删除
我已经用JavaScript写了下面的代码,对吗

 success: function (data) {
     $("p.p12").append
           ("<div style=\"background-color:#FAFAFA\";>Recently Added... <br /><a href=\"../../Employee/Details/" + data.OwnerID + "\">" + data.OwnerName + "</a>"
           + data.cmtDateTime + "<button type=\"button\" id = \" + data.Id  +  "\class=\"deleteComment\">Delete</button></span><br />" + data.msg + "</div>");                    
 }
成功:函数(数据){
$(“第12页”)。追加
(“最近添加的…”
+data.cmtDateTime+“Delete
”+data.msg+”; }
我用JScript写了下面的代码,对吗

不,好像不对。生成的HTML被破坏。您需要更加小心语法,属性和引号之间的空格之类的东西很重要。此外,您似乎正在硬编码url,而不是使用url帮助程序。试着这样做:

$('p.p12').append(
    '<div style="background-color:#FAFAFA;">Recently Added... <br /><a href="@Url.Action("Details", "Employee", new { id = "__id__" })'.replace('__id__', data.OwnerID) + '">' + data.OwnerName + '</a>' + data.cmtDateTime + '<span><button type="button" id=' + data.Id  + ' class="deleteComment">Delete</button></span><br />' + data.msg + '</div>'
 );
然后在强类型部分(
\u SomePartial.cshtml
)中构建标记,而不使用任何字符串连接和混合javascript和HTML的意大利面代码:

@model MyViewModel

<div style="background-color:#FAFAFA;">
    Recently Added... 
    <br />
    @Html.ActionLink(Model.OwnerName, "Details", "Employee", new { id = Model.OwnerID }, null)
    @HtmlDisplayFor(x => x.cmtDateTime)
    <span>
        <button type="button" id="@Model.Id" class="deleteComment">Delete</button>
    </span>
    <br />
    @HtmlDisplayFor(x => x.msg)
</div>

谢谢…但我想澄清一下双引号。。。我可以使用双引号还是应该写“insted”?在我的示例中,我将字符串用单引号括起来。这样你可以直接使用双引号(请阅读我的答案)。当然,您仍然可以在javascript中使用双引号将字符串括起来,在这种情况下,您必须使用
\“
在此文本中。但正如我在回答中明确指出的那样,这不是我建议的解决方案。我建议您让控制器操作返回部分视图,而不是以如此糟糕的javascript代码结束。
@model MyViewModel

<div style="background-color:#FAFAFA;">
    Recently Added... 
    <br />
    @Html.ActionLink(Model.OwnerName, "Details", "Employee", new { id = Model.OwnerID }, null)
    @HtmlDisplayFor(x => x.cmtDateTime)
    <span>
        <button type="button" id="@Model.Id" class="deleteComment">Delete</button>
    </span>
    <br />
    @HtmlDisplayFor(x => x.msg)
</div>
success: function(html) {
    $('p.p12').append(html);
}