javascript var 分配动态可为空值显示脚本错误

标签 javascript jquery asp.net-mvc asp.net-mvc-3

我使用 viewbag 键从我的 asp.net mvc3 应用程序 Controller 返回一个 JSON 字符串,如下所示,根据各种情况它也可以为 null

{"Name":"TShirt","Id":"85","Gender":"M","Size":"Medium"}

我正在尝试将此 JSON 对象分配给我的本地匿名变量,如下所示:

    var data = '@ViewBag.UserData'; 

上面的 ViewBag 在初始页面加载时为 null,但当用户键入条件时,我将其存储到 session 变量中。每当用户选择产品并单击返回上一页链接时,我都会从 session 中恢复这些过滤器并将它们放入 Viewbag 中以在 View 上进行进一步处理。

当用户点击返回上一页时,这工作得很好,但我在初始加载时看到脚本错误,因为var data = '@ViewBag.UserData'; code> 的计算结果为 var data = ;

我也尝试了以下方法,但仍然看到错误

var data = '@ViewBag.UserData' != '' ? @Html.Raw(@ViewBag.UserData): {};

我试过了

var data = '@ViewBag.UserData' != '' ? '@Html.Raw(@ViewBag.UserData)': {};

但我无法解析在返回上一页场景中获得的数据。我在这里做错了什么吗?

最佳答案

我不太清楚你真正想要什么。但根据我的理解,我认为你正在寻找 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

关于javascript var 分配动态可为空值显示脚本错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27916805/

相关文章:

javascript - 为什么在 Javascript 中使用 setTimeout 一次显示所有内容?

c# - ASP.NET MVC 网络 API : application/xml PUT request body is null on server side

asp.net-mvc - NHibernate QueryOver 与WhereRestriction 为 OR

javascript - 如何通过过滤嵌套属性返回父对象

javascript - 如何在表单数据上附加多个文件输入

javascript - jquery ui slider tabs无法设置undefined的属性

javascript - 通过按钮单击事件 jQuery 将模型发送到 MVC C# Controller 的操作

.net - 如何在不使用 Tab 或鼠标的情况下将光标从第一个文本区域移动到第二个文本区域?

javascript - 如何在离线 Web 应用程序中存储 250mb 的数据库

javascript - .val() 在 Jquery 中无法正常工作