C# 500发送包含类型字段的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个错误。 我想该类型无法正确序列化

我有一个问题需要将此类的实例作为JSON对象发送:

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>