javascript var 分配动态可为 null 的值显示脚本错误
javascript var assign a dynamic nullable value shows script error
我有一个 JSON 字符串从我的 asp.net mvc3 应用程序控制器使用 viewbag 键返回,如下所示,根据不同的情况,它也可以为空
{"Name":"TShirt","Id":"85","Gender":"M","Size":"Medium"}
我正在尝试将此 JSON 对象分配给我的本地匿名变量,如下所示:
var data = '@ViewBag.UserData';
上面的 ViewBag 在初始页面加载时为 null,但作为标准中的用户键,我将其存储到会话变量中。每当用户选择产品并单击 back to previous page
link 时,我都会从会话中恢复这些过滤器并将它们放在 Viewbag 中以便在视图上进一步处理。
当用户单击 back to previous page
时,这工作得很好,但我在初始加载时看到脚本错误,因为 var data = '@ViewBag.UserData';
计算为 var data = ;
我也尝试了下面的方法,但仍然看到错误
var data = '@ViewBag.UserData' != '' ? @Html.Raw(@ViewBag.UserData): {};
我试过了
var data = '@ViewBag.UserData' != '' ? '@Html.Raw(@ViewBag.UserData)': {};
但我无法解析在 back to previous page
场景中得到的 data
。我是不是做错了什么?
我不太清楚你真正想要的是什么。但据我了解,我认为您正在寻找 JSON 解析器。
var str = '{"one":"1","two":"2"}';
console.log(str); // Prints string
var obj = JSON.parse(str); //Converts string to JSON object
console.log(obj); // Prints JSON object
您可以尝试将 ''
替换为 null
或 {}
。可能是代码有效。
var data = '@ViewBag.UserData' != **null or {}** ? '@Html.Raw(@ViewBag.UserData)': {};
我有一个 JSON 字符串从我的 asp.net mvc3 应用程序控制器使用 viewbag 键返回,如下所示,根据不同的情况,它也可以为空
{"Name":"TShirt","Id":"85","Gender":"M","Size":"Medium"}
我正在尝试将此 JSON 对象分配给我的本地匿名变量,如下所示:
var data = '@ViewBag.UserData';
上面的 ViewBag 在初始页面加载时为 null,但作为标准中的用户键,我将其存储到会话变量中。每当用户选择产品并单击 back to previous page
link 时,我都会从会话中恢复这些过滤器并将它们放在 Viewbag 中以便在视图上进一步处理。
当用户单击 back to previous page
时,这工作得很好,但我在初始加载时看到脚本错误,因为 var data = '@ViewBag.UserData';
计算为 var data = ;
我也尝试了下面的方法,但仍然看到错误
var data = '@ViewBag.UserData' != '' ? @Html.Raw(@ViewBag.UserData): {};
我试过了
var data = '@ViewBag.UserData' != '' ? '@Html.Raw(@ViewBag.UserData)': {};
但我无法解析在 back to previous page
场景中得到的 data
。我是不是做错了什么?
我不太清楚你真正想要的是什么。但据我了解,我认为您正在寻找 JSON 解析器。
var str = '{"one":"1","two":"2"}';
console.log(str); // Prints string
var obj = JSON.parse(str); //Converts string to JSON object
console.log(obj); // Prints JSON object
您可以尝试将 ''
替换为 null
或 {}
。可能是代码有效。
var data = '@ViewBag.UserData' != **null or {}** ? '@Html.Raw(@ViewBag.UserData)': {};