0

我正在尝试在我的 MVC 应用程序中访问 REST 服务。我正在调用getJSON方法以从控制器获取数据,该控制器在内部调用 REST 服务,该服务以json格式返回数据。但是我在方法"\的输出中得到了很多DownLoadString并且我的返回 Json 没有返回正确的 JSON 数据,因此我的客户端脚本无法访问 JSON 属性。

我认为我的脚本是

$.getJSON("@Url.Action("GetManufacturers", "Home")",function(data){
     console.debug("Status is : "+data.Status)
});

我的 Action 方法看起来像这样

public ActionResult GetManufacturers()
{          
        string restURL ="http://mytestserver/myapi/Manufacturers";
        using (var client = new WebClient())
        {               
            var data = client.DownloadString(restURL); 

           //data variable gets "\" everywhere
            return Json(data,JsonRequestBehavior.AllowGet);                      
        }   
}

我在我的操作方法中使用了 Visual Studio 断点,我看到了很多\" 在此处输入图像描述

我检查了我的getJSON回调中出现的内容,并且 JSON 选项卡为空。 在此处输入图像描述 但是我的回复标签有这样的内容

在此处输入图像描述

我相信如果没有\",我将能够很好地解析它。

我使用 fiddler 来查看我是否从我的 REST 服务中获取了正确的(JSON 格式)数据,看起来还不错。

在此处输入图像描述

谁能帮我解决这个问题?我想从我的操作方法中返回正确的 JSON。有时我可能想读取 C# 代码本身中的 json 属性。我看到了一些使用DataContractJsonSerializer. 但这需要一个具体的类型来转换。我不想那样做。因为其他客户端也将访问我的 RESTService 以及如何期望他们为此编写一个假实体?

4

1 回答 1

1

您需要按原样返回数据:

public ActionResult GetManufacturers()
{          
    string restURL ="http://mytestserver/myapi/Manufacturers";
    using (var client = new WebClient())
    {               
        var data = client.DownloadString(restURL); 
        return Content(data, "application/json");                      
    }   
}
于 2012-05-30T14:37:33.747 回答