[英]asp.net razor special character issue in javascript variable
我在webmatrix中使用razor,我遇到字符串特殊字符的問題。 我想在javascript中將一個字符串放入一個varibale但是當我嘗試使用標簽@時它顯示一個問題,這就是代碼:
<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>
所以我想知道是否有辦法解決這個問題。
使用double @ like @@而不是@@
根據您的錯誤,您必須在某處使用''(簡單引號)並由剃刀引擎編譯。 嘗試在“”字符串中更改所有“in”。
試試你自己,如果你聲明一個類似'aa'的字符串,你會在Csharp中得到同樣的錯誤,因為你必須使用“aa”來聲明一個字符串文字。 ''是為了字符文字。
無論如何,在我看來你不應該混合使用j和C#。 如果需要將變量從C#傳遞給Js,請使用ajax或其他解決方案,如隱藏輸入字段。 或者創建這樣的模板:
<script type='text/template' id='mytemplate'>
<div>@myVar</div>
</script>
並獲取模板的內容
$templateContent= $("#mytemplate").html()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.