【问题标题】:asp.net razor special character issue in javascript variablejavascript变量中的asp.net razor特殊字符问题
【发布时间】:2012-02-28 14:49:38
【问题描述】:

我在 webmatrix 中使用 razor,但字符串特殊字符有问题。我想将一个字符串放入 javascript 中的变量中,但是当我尝试使用标签 @ 时,它显示了一个问题 这是代码:

<script>
 $Edit.click(function() {
        var userid = $(this).closest('td').prev('td').text();
     var stringDiv = "@{ var selectQueryString4 =  SELECT * FROM DemandeConge where UserId = '\"+ trim(userid) + \"'\"+\";<h3>modifier la demande de congé de \" + userid +  \"</h3>foreach(var row in db.Query(selectQueryString4)){<form action='responsable.cshtml' method=\"post\"><label for=\"txtDebut\">Date début :</label><input type=\"text\" id=\"txtDebut\" value=\"+ @row.DateDebutDemande +\"/></br><label for=\"txtFin\">Date de fin :</label><input type=\"text\" id=\"txtFin\" value=\"+ @row.DateFinDemande +\"/></br> <label for=\"txtTypeCong\">Type de congé :</label><input type=\"text\" id=\"txtTypeCong\" value=\"+ @row.TypeConge +\"/><input type=\"hidden\" name=\"UserId\" value=\"+ @row.UserId +\" /><input type=\"hidden\" name=\"type\" value=\"edite\" /><input type=\"submit\" value=\"Oui\"  /> <input type=\"button\" value=\"No\" onclick=\"$('#edite').slideUp(); document.getElementById('edite').innerHTML = ' '\" /> </form>}}}");


    document.getElementById('edite').innerHTML = stringDiv ;
        $('#edite').slideDown(1000);

        )
</script>

所以我想知道有没有办法解决这个问题。

【问题讨论】:

  • 显示的问题是什么?返回的错误是什么?
  • 就是这样:编译错误描述:在编译服务此请求所需的资源期间发生错误。请查看以下特定错误详细信息并适当修改您的源代码。编译器错误消息:CS1012:字符文字 imageup.fr/uploads/1330443764.jpeg 中的字符过多

标签: javascript html asp.net-mvc razor webmatrix


【解决方案1】:

像@@一样使用双@而不是一个@

【讨论】:

  • 这是 tnksssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
  • 欢迎您,很高兴有帮助:)
【解决方案2】:

根据您的错误,您必须在某处使用 ' '(简单引号),并且它由剃须刀引擎编译。 尝试更改 "" 字符串中的所有 ' in \"。

自己尝试一下,如果你声明一个像这样的字符串 'aa' 你会在 Csharp 中得到同样的错误,因为你必须使用 "aa" 来声明一个字符串文字。 '' 用于字符文字。

无论如何,我认为你不应该混合使用 js 和 C#。如果您需要将变量从 C# 传递到 Js,请使用 ajax 或其他解决方案,例如隐藏输入字段。或创建这样的模板:

<script type='text/template' id='mytemplate'>
<div>@myVar</div>
</script>

并用

获取模板的内容
$templateContent= $("#mytemplate").html()

【讨论】:

  • tnkks dude ^^ 但它不起作用我钢铁有@标签的问题
猜你喜欢
  • 1970-01-01
  • 2022-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-19
相关资源
最近更新 更多