2012-05-02 177 views
0

我想获得一些JSON功能的工作,它基本上尽可能简单,但由于某种原因,我得到一个500内部服务器错误我的控制台和应用程序永远不会到达控制器。我已经尝试了几乎所有的东西,但是代码非常简单,我已经放弃了通过反复阅读相同的几行代码来尝试查找错误。在MVC3中的JSON:500(内部服务器服务器错误)

这里是我的脚本:

  $("#saveAdvisorOption").click(function() { 
      // Create a JSON object: 
      alert("OK"); 
      var OptionsModel = { "AdvisorNewsFeed": $("#advisorCheckBox").val() }; 
      alert($(OptionsModel.AdvisorNewsFeed)); 
      $.post("/Account/ChangeOptionForAdvisor", OptionsModel, function (data) { 

      }); 
     }); 

这里是我的模型:

public class OptionsModel 
{ 
    public string AdvisorNewsFeed { get; set; } 

    public OptionsModel(string AdvisorNewsFeed) 
    { 
     this.AdvisorNewsFeed = AdvisorNewsFeed; 

    } 
} 

}

这里是我的控制器:

public class AccountController : Controller 
{ 
    [HttpPost] 
    public ActionResult ChangeOptionForAdvisor(OptionsModel option) 
    { 

     //Return something 
     return Json(option, JsonRequestBehavior.AllowGet); 
    } 

我有一个突破指出返回声明但它永远不会运行。

任何帮助,非常感谢。

+0

你为什么不给我们例外......? – gdoron

回答

3

你可能只需要添加OptionsModel类的空构造函数。没有空的构造函数,MVC不能实例化类。

+0

+1。他需要将dataType指定为'json',但这是另一回事。 – gdoron

+0

@gdoron这是不正确的。 – scottm

+0

为什么呢? – gdoron

1

@scottm得到了主要问题。

这就是说:

你可能需要告诉jQuery的你希望得到一个json对象:

$.post("/Account/ChangeOptionForAdvisor", OptionsModel, function (data) {...}); 

要这样:

$.post("/Account/ChangeOptionForAdvisor", OptionsModel, function (data) { 
    ...}, 'json'); //<====== 
+2

这应该不是500服务器错误的原因(这个修复是客户端,*在得到响应之后*)。 –

+0

@FelixKling。确实,添加了一个注释 – gdoron