【发布时间】:2023-01-24 19:34:45
【问题描述】:
我想在我的控制器中返回 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 在我的控制器中返回。
【问题讨论】:
-
只需将您的控制器代码更改为:`var result = Services.CheckRecords(guid); return Json(result);` 它应该可以工作。
-
在
Services类中,你会得到一个编译错误,说明你没有实现方法:IdIdentity CheckRecords(string guid);。或者修改IServices中CheckRecords的返回类型为List<IdIdentity>。这些更改将影响服务层中的CheckRecords方法。您还必须为此修改返回类型。 -
而且
string result = Services.CheckRecords( guid);也没有意义。这也会导致编译错误,因为Services.CheckRecords( guid)返回IdIdentity值,但您分配给具有string类型的变量。 -
@YongShun,你能给我一个答案吗?正如我提到的,我想从数据服务层获取值并在我的控制器中以 json 格式返回这些值。几乎没有错误。感谢,如果你能请给我一个解决方案。
-
@Nikolay,请给我一个解决方案。如何从数据服务层获取结果并将这些结果以 json 格式传递给我的控制器。
标签: c# json model-view-controller