帮助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()); }