从MVC控制器返回JSON字符串

ste*_*fan 3 asp.net-mvc jquery json asp.net-mvc-4

我使用以下代码将对象发送/接收到我的mvc控制器:

$.ajax({
url: _createOrUpdateTimeRecord,
data: JSON.stringify(data),
type: "POST",
//dataType: "json",
contentType: "application/json; charset=utf-8",
beforeSend: function () {
    $("#loading-overlay").show();
},
success: function (data2) {
    try {   // tried to parse it manually to see if anything changes.
        data2 = JSON.parse(data2);
    }
    catch (err) {

    }
},
error: function (xhr, ajaxOptions, thrownError) {
    alert(thrownError + 'xhr error -- ' + xhr.status);
}
Run Code Online (Sandbox Code Playgroud)

});

在我的mvc控制器上,我将JSON对象作为字符串,因此不需要.NET JavascriptSerializer和JsonResult。

我的JSON字符串如下所示:

data2 = "{title:'1111111',start:'2014-03-23T16:00:00.000',end:'2014-03-23T18:00:00.000',id:107,hdtid:1,color:'#c732bd',allDay:false,description:''}"
Run Code Online (Sandbox Code Playgroud)

而且我总是得到:“无效字符”

我已经尝试过返回一个字符串并在客户端手动解析JSON。因此,我使用ContentResult作为返回类型,但没有成功

    public class JsonStringResult : ContentResult
    {
        public JsonStringResult(string json)
        {
            Content = json;
            ContentType = "application/json";
        }
    }
Run Code Online (Sandbox Code Playgroud)

这里有什么问题?JSON看起来不错...

干杯,斯特凡

Din*_*esh 5

尝试一下Json Conrtroller

  public JsonResult fnname()
    {
        string variablename = "{title:'1111111',start:'2014-03-23T16:00:00.000',end:'2014-03-23T18:00:00.000',id:107,hdtid:1,color:'#c732bd',allDay:false,description:''}";
        return Json(variablename , JsonRequestBehavior.AllowGet);
    }
Run Code Online (Sandbox Code Playgroud)

jQuery JSON传递

 $(document).ready(function() {
   $.post("/controllername/fnname", { }, function (result) {
      alert(result);
   }, "json");
 });
Run Code Online (Sandbox Code Playgroud)