我想在我的控制器中返回JSON结果。
在我的控制器中,我得到一个GUID
数组,并将其传递给CheckRecords
方法。
目前,我不确定如何将数据从数据服务层获取回我的控制器。
这是我的完整代码
控制器:
public JsonResult CheckData()
{
string guid = HttpContext.Request["GUID"];
string result = Services.CheckRecords( guid);
return Json(result);
}
字符串
服务层:
public static IdIdentity CheckRecords(string guid)
{
return DataServices.Services.CheckRecords(guid);
}
型
接口:
public interface IServices
{
IdIdentity CheckRecords(string guid);
}
型
返回列表的数据服务层:
public class Services : IServices
{
public const string PARAM_FORM_GUID = "guid";
public List<IdIdentity> CheckRecords(string guid)
{
IdIdentity Code = new IdIdentity();
if (Code == null)
return null;
string sql= "SELECT Name FROM OCODE" +
" WHERE SID IN(SELECT SID FROM OITEMS WHERE OITEM_ID IN (" + PARAM_FORM_GUID + "))";
var parameters = new List<DbParameter>
{
CreateParameter(PARAM_FORM_GUID, DbType.String, guid, DBNull.Value),
};
sql = ReplaceParameterPrefix(sql);
return ReadAll(sql, parameters, reader =>
{
return new IdIdentity(reader.ReadByName(T_EXCLUSIONS.EXCLUDED_ID, string.Empty),
reader.ReadByName(T_EXCLUSIONS.EXCLUDED_ID_SCH, string.Empty));
}).ToList();
}
}
型ReplaceParameterPrefix
函数:
public static string ReplaceParameterPrefix(string sqlString)
{
if (DataServices.TypeOfProvider == DataServices.ProviderType.SqlServer)
{
sqlString = sqlString.Replace(':', '@');
}
return sqlString;
}
型
产品型号:
[Serializable]
public class IdIdentity : GenericType
{
public string Id { get; set; }
public string Scheme { get; set; }
public string Name { get; set; }
public
public IdIdentity(string id, string scheme, string name = null)
{
Id = id;
Scheme = scheme;
Name = name;
}
}
型
请告诉我如何在我的控制器中获取结果列表并将其作为JSON返回。
1条答案
按热度按时间rm5edbpk1#
问题与关注
1.不从
IService
实现该方法。从您的
IService
字符串
和/或
型
您没有在
Services
类中实现IService
中的方法。1.将
IdIdentity
值分配给string
类型的变量时出现编译错误。型
解决方案
1.修改
CheckRecords
方法签名以返回IServices
接口中的List<IdIdentity>
类型。型
1.1 中的更改需要修改
CheckRecords
方法签名,以返回服务层中的List<IdIdentity>
类型。服务层
型
1.对于
result
变量,应该使用隐式变量(var
)或显式变量(List<IdIdentity>
)。型