帮助asp.net mvc和jquery
$("#add_activity").click(function () { $('#activities').append('@Html.Raw(Html.Partial("MyPartial").ToHtmlString())'); });
我有一些代码似乎工作得很好,如果部分是这样的:
Foo
但如果部分是这样的话,就无法工作
Foo
我怎么能解决这个问题呢?把它全部放在一条线上是非常可怕的。
请帮忙。
这很正常。 如果您查看生成页面的源代码,您将看到:
$('#activities').append(' Foo ');
这显然离可以被认为是有效的javascript的东西很远。
您可以像这样使用JavaScriptStringEncode方法:
$("#add_activity").click(function () { $('#activities').append('@HttpUtility.JavaScriptStringEncode(Html.Partial("MyPartial").ToHtmlString())'); });
这将负责正确编码HTML字符串,你将得到有效的javascript:
$("#add_activity").click(function () { $('#activities').append('\u003ctr\u003e\r\n \u003ctd\u003e\r\n Foo\r\n \u003c/td\u003e\r\n \u003ctd\u003e\r\n \u003cinput type=\"text\" name=\"bar\" /\u003e\r\n \u003c/td\u003e\r\n\u003c/tr\u003e'); });
产生所需的结果。
这适用于MVC3:
@{ Layout = null; var s = HttpUtility.JavaScriptStringEncode(Html.Partial("Banner").ToHtmlString().ToString()); }