C# 500发送包含类型字段的JSON对象时发生内部服务器错误
我有一个问题需要将此类的实例作为JSON对象发送:C# 500发送包含类型字段的JSON对象时发生内部服务器错误,c#,json,ajax,asp.net-mvc,C#,Json,Ajax,Asp.net Mvc,我有一个问题需要将此类的实例作为JSON对象发送: class Temp { public String Name = "Foo"; public Type type ; } 当通过Ajax将一个实例作为JSON对象从控制器发送到视图时,我得到一个500内部服务器错误。 罪魁祸首是类型参数。 如果我设置type=null,Ajax调用将成功。 如果type=something(即typeof(String)),Ajax调用将失败,并出现500个错误。 我想该类型无法正确序列化
class Temp
{
public String Name = "Foo";
public Type type ;
}
当通过Ajax将一个实例作为JSON对象从控制器发送到视图时,我得到一个500内部服务器错误。
罪魁祸首是类型参数。
如果我设置type=null,Ajax调用将成功。
如果type=something(即typeof(String)),Ajax调用将失败,并出现500个错误。
我想该类型无法正确序列化
为了测试这一点,我尝试使用NonSerializedAttribute属性将其非序列化,但没有帮助:
[NonSerializedAttribute]
public Type type = typeof(String);
有什么办法来解决这个问题吗
如果相关,该视图按以下方式调用:
JsonResult json = Json( new Temp(), "application/json; charset=utf-8", JsonRequestBehavior.AllowGet);
return json;
请问为什么要将原始json发送到视图 MVC允许您将POCO从控制器发送到视图-您可以从视图访问POCO的属性。所有序列化都是在引擎盖下为您进行的 控制器:
public ActionResult MyAction()
{
Temp viewModel = new Temp {
Name = "Foo",
Type = new Type() }
return View(viewModel);
}
视图(MyAction.cshtml):
@model-Temp
这是我的名字:@Model.name
其他资料:
@Model.Type.Property1
@Model.Type.Property2
在本例中,视图中的HTML DropDownList控件发出ajax调用以刷新其内容。我已经将@model用于视图的其他用途。
@model Temp
<div>This is my name: @Model.Name</div>
<div>Other info:
<p> @Model.Type.Property1 </p>
<p> @Model.Type.Property2</p>
</div>