Проблема с специальными символами бритвы asp.net в переменной javascript - PullRequest
0 голосов
/ 28 февраля 2012

Я использую бритву в веб-матрице, и у меня проблема со специальным символом строки. Я хочу поместить строку в переменную в 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>

Так что я хочу знать, есть ли способ решить эту проблему.

Ответы [ 2 ]

2 голосов
/ 03 марта 2012

используйте двойной @ like @@ вместо одного @

0 голосов
/ 28 февраля 2012

Исходя из вашей ошибки, вы должны где-то использовать '' (простые кавычки), и она будет скомпилирована механизмом бритвы.попробуйте изменить все ваши строки "in \" в ваших "".

попробуйте сами, если вы объявите строку типа 'aa', вы получите ту же ошибку в Csharp, потому что вы должны использовать "aa "для объявления строкового литерала." предназначены для символьных литералов.

в любом случае, по моему мнению, вам не следует смешивать js и C #. если вам нужно передать переменные из C # в J, используйте либо ajax, либо другое решениенапример, скрытые поля ввода или создайте такие шаблоны:

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

и получите содержимое шаблона с помощью

$templateContent= $("#mytemplate").html()
...