我需要使用@(ViewData["value"]);
中的document.ready
。但是当我使用的时候
@(ViewData["value"])
所有jQuery都无法正常工作。我的样本如下:
$(document).ready(function () {
var test = @(ViewData["value"]); // remove this line query has been working
if (test != null){
//my code
}
});
答案 0 :(得分:3)
而不是在javascript中访问@(ViewData["value"]);
,最好将该值放在隐藏字段或其他元素中。看下面的代码:
<input id="some-id" type="hidden" value="@(ViewData["value"]);" />
...
...
...
$(document).ready(function () {
var test = $("#some-id");
if (test != null){
//my code
}
});
答案 1 :(得分:2)
如果在脚本标记内使用C#,则需要将C#变量括在引号中。尝试
$(document).ready(function () {
var test = '@(ViewData["value"])';
if (test != null){
}
});
如果您的ViewData [“value”]的值是数字,那么如果您不将其括在引号中但是如果它是带有空格的字符串,例如ViewData [“value”] =“Hello World”,您的浏览器将是正常的得到一个错误,说“SyntaxError:missing; before statement”,这就是你的脚本或jquery将不再起作用的原因。
答案 2 :(得分:1)
客户端无法访问ViewData,因为它仅存在于视图渲染中。 可能的选择
答案 3 :(得分:0)
如果您的ViewData["value"]
是string
,则可以尝试:
var test = '@ViewData["value"]';