【发布时间】:2012-11-27 16:30:35
【问题描述】:
我有以下应该返回 JSONResult 的方法,因此我可以在带有 javascript 的 AJAX 方法中使用它并为文本框加载自动完成建议。每次特定下拉列表更改时,我都会加载它。
[AcceptVerbs(HttpVerbs.Post), Authorize]
private JsonResult GetSchemaNodeValues(string SchemaNodeId)
{
var query = @"Select ld.""Value""
From ""LookupData"" ld, ""SchemaNode"" sn
Where sn.""LookupTypeId"" = ld.""LookupTypeId""
And sn.""SchemaNodeId"" = '{0}'";
DataSet data = new DataSet();
data = ServiceManager.GenericService.ExecuteQuery(String.Format(query, SchemaNodeId)).Data;
var res = data.Tables[0].AsEnumerable().Select(dr => new
{
Value = dr["Value"].ToString()
});
return JsonConvert.SerializeObject(res);
}
return JsonConvert.SerializeObject(res); 下出现以下错误
Error 106 Cannot implicitly convert type 'string' to 'System.Web.Mvc.JsonResult'
有什么办法可以解决这个问题吗?
在此之前,我尝试使用 System.Web.mvc.Controller.Json(res);它从一个对象返回一个 JSONResult。
但我无法使用它,因为我的类是 PageDialog 而不是 Controller,因此它无法访问 Controller 的受保护内部方法,例如 JSon()。我得到的错误是 JSon() 由于其保护级别而无法访问。 Controller 类已锁定,我无法将其公开或创建解决方法,因此我使用 JsonConvert.SerializeObject(res); 更改了方法;
非常欢迎任何建议。
【问题讨论】:
标签: c# .net json serialization