如何在JavaScript中使用HTML语法?
我正在开发MVC应用程序并使用razor语法 我想在cshtml文件中使用JavaScript中的HTML代码,但我对如何在JavaScript中使用razor语法中的双引号感到困惑。那有关系吗 这是一行代码:如何在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
<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);
}