我们在JSON.Net上遇到了一个奇怪的问题。一切正在使用我们的IIS应用程序。在某一天,JObject.Parse开始出错。它一直工作到那个时候。之后,解析失败了。
例外是:
javax.ejb.SessionContext
调用它的代码
System.ArgumentNullException: Value cannot be null. Parameter name: value
at Newtonsoft.Json.Linq.JToken.op_Explicit(JToken value)
at ASP.areas_admin_views_shared_editortemplates_reflectionfield_ascx.__Render__control1(HtmlTextWriter __w, Control parameterContainer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
....
我调试了这个并且跟随字符串工作:
<% JObject o = JObject.Parse((string)ViewData["ReflectionField_Choices"].ToString()); %>
以下字符串失败:
{ 'choices' : [{'Form_id' : 11065,'Fields' : [],'Name' : 'B'}] }
当一切正常时,失败的字符串当然有效。有没有人知道什么可能导致在运行时更改此库?
答案 0 :(得分:0)
我认为,您的问题可能是ViewData["ReflectionField_Choices"]
在此过程中的某处被删除。可能是因为它被保存为ViewData,并且在一段时间后(cookie /会话到期)/刷新数据丢失。