Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在MVC中序列化时JSON无效#_C#_Jquery_Asp.net Mvc_Json_Jquery Ui - Fatal编程技术网

C# 在MVC中序列化时JSON无效#

C# 在MVC中序列化时JSON无效#,c#,jquery,asp.net-mvc,json,jquery-ui,C#,Jquery,Asp.net Mvc,Json,Jquery Ui,我使用jQueryUI在我的站点的文本框上有一个自动完成功能,JSON在MVC视图模型中序列化,然后在视图中使用。 运行时未正确生成JSON。 浏览器中的控制台返回以下内容 未捕获的语法错误:意外标记& 我还没有让它使用我自己的数据,所以项目名称仍然与JqueryUI示例相关,使用我自己的JSON数据 视图(剃须刀) 序列化的JSON [{"TeamID":1,"TeamName":"Bilborough

我使用jQueryUI在我的站点的文本框上有一个自动完成功能,JSON在MVC视图模型中序列化,然后在视图中使用。 运行时未正确生成JSON。 浏览器中的控制台返回以下内容

未捕获的语法错误:意外标记&

我还没有让它使用我自己的数据,所以项目名称仍然与JqueryUI示例相关,使用我自己的JSON数据

视图(剃须刀)

序列化的JSON

[{"TeamID":1,"TeamName":"Bilborough Broncos","ClubID":null,"LeagueID":null,"IsPremium&‌​quot;:false,"PremiumLength":null,"PremiumStart":null,"Co‌​untryID":"GB","AreaName":"Nottingham","Cl‌​ub":null,"League":null}]
应该是什么

[{"TeamID":1,"TeamName":"Bilborough Broncos","ClubID":null,"LeagueID":null,"IsPremium":false,"PremiumLength":null,"PremiumStart":null,"CountryID":"GB","AreaName":"Nottingham","Club":null,"League":null}]

答案1:

public String TeamsAsJson{ get{
          JavaScriptSerializer Serializer = new JavaScriptSerializer();
          return Serializer.Serialize(JsonConvert.SerializeObject(TeamHelpers.GetAllTeams(), Formatting.None));
      }
          private set { TeamsAsJson = value; }
      }
尝试使用
JSON.parse
作为:-

$("#project").autocomplete({
      minLength: 0,
      source: projects,
      focus: function (event, ui) {
          ui=JSON.parse(ui.replace(/"/g,'"'));
          $("#project").val(ui.item.TeamName);
          return false;
      },
      select: function (event, ui) {
          ui=JSON.parse(ui.replace(/"/g,'"'));
          $("#project").val(ui.item.TeamName);
          $("#project-id").val(ui.item.TeamName);
          $("#project-description").html(ui.item.AreaName);
          $("#project-icon").attr("src", "images/" + ui.item.icon);

          return false;
      }
  })
答案2:

public String TeamsAsJson{ get{
          JavaScriptSerializer Serializer = new JavaScriptSerializer();
          return Serializer.Serialize(JsonConvert.SerializeObject(TeamHelpers.GetAllTeams(), Formatting.None));
      }
          private set { TeamsAsJson = value; }
      }
视图模型:

public String TeamsAsJson{ get{
          JavaScriptSerializer Serializer = new JavaScriptSerializer();
          return Serializer.Serialize(JsonConvert.SerializeObject(TeamHelpers.GetAllTeams(), Formatting.None));
      }
          private set { TeamsAsJson = value; }
      }
c#变量正在进行html编码。解决办法是:

var projects = @Html.Raw(Model.TeamsAsJson)

注意:这是从问题中摘录出来的,并代表OP发布在这里。

同样的错误。。。JSON实际上在运行时返回
var projects=[{“TeamID”:1,“TeamName”:“Bilborough Broncos”,“ClubID”:null,“LeagueID”:null,“IsPremium”:false,“PremiumLength”:null,“PremiumStart”:null,“CountryID”:“GB”,“arename”:“诺丁汉”,“Club”:null,“League”:null}]
,而不是前面提到的内容,然后尝试这个ui=JSON.parse(ui)…在select和focus中…而不是在单个元素上应用它…当我这样做时,它不会让我这样做,它会说“{expected”@user3381024…请参阅更新的答案…同样的错误被抛出。然而,它被抛出在我的代码中的var.62行声明上,即“var projects=@Model.TeamsAsJson”控制器是什么样子的。看起来您正在使用非标准MVC方式错误地将对象转换为JSON。我已将您的自我答案移至“答案”部分。以后,请将问题和答案分开。