在javascript中使用c#代码编写的脚本会出现错误,这是非法的
我的行动 从这个动作方法中,我将返回viewbag中的javascript代码,在我的视图中,我将使用这个javascript来呈现它在javascript中使用c#代码编写的脚本会出现错误,这是非法的,javascript,c#,Javascript,C#,我的行动 从这个动作方法中,我将返回viewbag中的javascript代码,在我的视图中,我将使用这个javascript来呈现它 public ActionResult Index() { var js = "$(document).ready(function(){ " + "alert('Test Verbatim string'); " +
public ActionResult Index()
{
var js = "$(document).ready(function(){ " +
"alert('Test Verbatim string'); " +
"});";
ViewBag.JavaScrpt = HttpUtility.JavaScriptStringEncode(js);
return View();
}
视图代码
<script type="text/javascript">
@ViewBag.JavaScrpt
</script>
@ViewBag.JavaScrpt
我正在获取未捕获的SyntaxError:意外标记非法
浏览器中呈现的JavaScript代码是
<script type="text/javascript">
$(document).ready(function(){ alert(\u0027Test Verbatim string\u0027); });
</script>
$(document).ready(函数(){alert(\u0027Test Verbatim string\u0027);});
我知道用C#编写javascript代码不是很好的做法。但是我需要它来满足特定的需求。在调用警报之前,您有一个额外的“{”括号。在警报之前删除
{
,无论您使用什么样的模板系统(我假设是Microsoft MVC或ASP.Net)正在将'
替换为\u0027
。因此,您需要查看该系统的文档,了解如何告诉它不要这样做。只是不要对javascript进行编码……只需使用@Html.Raw(@ViewBag.javascript)
。顺便说一句,您的示例中充满了拼写错误……这是一个问题。我错放了。这不是实际情况issue@TBAG您共享的脚本标记也显示了相同的错误。您能检查呈现的js是否有效吗?@Rajesh randered javascript我已经包含在code@TBAG正如@T.J.Crowder所说,有些东西正在将“
更改为\u0027。试试看将文本放入变量并传递该变量。