Javascript Jquery在cshtml页面中不工作
我需要使用@ViewData[value];准备好了。但是当我使用 @ViewData[value]所有jQuery都不工作。我的样本如下:Javascript Jquery在cshtml页面中不工作,javascript,jquery,asp.net-mvc,razor,Javascript,Jquery,Asp.net Mvc,Razor,我需要使用@ViewData[value];准备好了。但是当我使用 @ViewData[value]所有jQuery都不工作。我的样本如下: $(document).ready(function () { var test = @(ViewData["value"]); // remove this line query has been working if (test != null){ //my code } }); ViewData在客户端上不
$(document).ready(function () {
var test = @(ViewData["value"]); // remove this line query has been working
if (test != null){
//my code
}
});
ViewData在客户端上不可访问,因为它仅存在于视图渲染中。 可能的选择 在服务器端将视图数据序列化为json 将其写入隐藏字段,并将其解析为客户端的javascript对象。
ViewData在客户端上不可访问,因为它仅存在于视图渲染中。 可能的选择 在服务器端将视图数据序列化为json 将其写入隐藏字段,并将其解析为客户端的javascript对象。 而不是访问@ViewData[value];在javascript中,最好将该值放在隐藏字段或其他元素中。看看下面的代码:
<input id="some-id" type="hidden" value="@(ViewData["value"]);" />
...
...
...
$(document).ready(function () {
var test = $("#some-id");
if (test != null){
//my code
}
});
而不是访问@ViewData[value];在javascript中,最好将该值放在隐藏字段或其他元素中。看看下面的代码:
<input id="some-id" type="hidden" value="@(ViewData["value"]);" />
...
...
...
$(document).ready(function () {
var test = $("#some-id");
if (test != null){
//my code
}
});
如果在脚本标记中使用C,则需要将C变量括在引号中。试一试
$(document).ready(function () {
var test = '@(ViewData["value"])';
if (test != null){
}
});
如果ViewData[value]的值是number,则不使用引号将其括起来也可以,但如果它是带空格的字符串,例如ViewData[value]=Hello World,则浏览器将出现一个错误,显示SyntaxError:missing;before语句,这就是脚本或jquery不再工作的原因。如果在脚本标记中使用C,则需要将C变量括在引号中。试一试
$(document).ready(function () {
var test = '@(ViewData["value"])';
if (test != null){
}
});
如果ViewData[value]的值是number,则不使用引号将其括起来也可以,但如果它是带空格的字符串,例如ViewData[value]=Hello World,则浏览器将出现一个错误,显示SyntaxError:missing;before语句,这就是脚本或jquery不再工作的原因。如果ViewData[value]是字符串,可以尝试以下操作:
var test = '@ViewData["value"]';
如果ViewData[value]是字符串,可以尝试以下操作:
var test = '@ViewData["value"]';
也许这一个可以帮助您var test=@serializer.SerializeViewData[value];也许这一个可以帮助您var test=@serializer.SerializeViewData[value];IMHO OP尝试执行的操作也是一个可能的选项:渲染脚本时访问ViewData IMHO OP尝试执行的操作也是一个可能的选项:渲染脚本时访问ViewData这个答案很好,但在高度优化的web应用程序中是不可接受的。假设您调用ViewData[value]的web应用程序返回20kb大小的数据,然后将20kb大小存储到一个隐藏字段中,该字段将20kb大小添加到页面大小,因此整个web进程总共添加40kb。这个答案很好,但在高度优化的web应用程序中是不可接受的。想象一下,调用ViewData[value]的web应用程序返回20kb大小的数据,然后将20kb大小存储到一个隐藏字段中,而该字段又将20kb大小添加到页面大小中,因此整个web进程总共添加了40kb