假设我有一个帮助者,例如:
@helper AddErrorSpan(string error)
{
<span class="error">@error</span>
}
我遇到了尝试在javascript中调用帮助程序的问题。例如:
if ($('#YearTextBox').val() == "")
{
$('#ErrorDiv').append('@AddErrorSpan("Year field is required.")');
}
这将失败并导致javascript语法错误,因为帮助程序最后会返回换行符。这导致结尾的
');
被推到下一行,从而导致语法错误。我可以采取什么措施来轻松地解决此问题?当前,简单的解决方案是使助手成为这样。@helper AddErrorSpan(string error)
{<span class="error">@error</span>}
由于结束
}
之前没有中断,因此不会从帮助程序返回新行,并且没有javascript语法错误。这有点烦人,而且很难看。有没有一种方法可以防止在我的javascript方法中调用助手时返回换行符? 最佳答案
调用帮助程序时,需要通过调用 HttpUtility.JavaScriptStringEncode
对字符串进行Javascript编码。
这将以\r\n
换行,而HTML解析器将无害地吞下该换行。
$('#ErrorDiv').append('@HttpUtility.JavaScriptStringEncode(AddErrorSpan("Year field is required.").ToString())');