Uncaught SyntaxError: Invalid left-hand side in assignment CSHTML

Uncaught SyntaxError: Invalid left-hand side in assignment CSHTML

在 razor 文件 .cshtml 中,我声明了一个这样的变量

@{ string myVariable = "";} 

然后 我已经使用这个变量来获得输入值:

<input id ="myInput"/>
<script>
'@myVariable' = $('#myInput').val();
</script>

但得到==> Uncaught SyntaxError: Invalid left-hand side in assignment

要设置一个值,请使用:

$("#myInput").val("value");

所以你直接用你的 razor 变量替换 value,给出:

$("#myInput").val("@myVariable")

请注意,如果您的 myVariable 是 String.Empty (""),那么呈现的 html 将是

$("#myInput").val("");

所以会清除/似乎没有设置输入。


如果您查看视图提供的 rendered html,您的原始代码将是:

'' = $("#myInput").val();

并直接将其作为 javascript 你可以看到你不能为名为 '' 的变量赋值。或者,如果您的 myVariable 不是空字符串,它将显示为:

'myValue' = ...

这也是无效的 javascript。


注意不需要javascript/jquery设置值,可以直接在html:

中使用Razor变量
<input id="myInput" type="text" value="@myVariable">

如果想把myVariable的值设置成$('#myInput').val()。可以先参考official link@{ string myVariable = "";}表示myVariable 是c# variable.So 你不能用 js 设置 c# 变量 '@myVariable' = $('#myInput').val();。你可以使用 js variable.Here 是一个演示。

查看:

<input id="myInput" onblur="setValue()"/>
<script>
        var myVariable;
        function setValue(){
            myVariable = $('#myInput').val();
            alert(myVariable);
        }
</script>

结果: