Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将状态值从int更改为string_C#_Asp.net_.net_Enums_Asp.net Core Mvc - Fatal编程技术网

C# 将状态值从int更改为string

C# 将状态值从int更改为string,c#,asp.net,.net,enums,asp.net-core-mvc,C#,Asp.net,.net,Enums,Asp.net Core Mvc,我有一个status属性,在对象数组中具有int值。下面是对象数组的输出 [ { "enterpriseServiceId": 1, "enterpriseServices": {}, "status": 3, "id": 1, "createdOn": "2017-12-29T17:58:15.4855946", "createdBy": "System", "modifie

我有一个status属性,在对象数组中具有
int
值。下面是对象数组的输出

[
    {
        "enterpriseServiceId": 1,
        "enterpriseServices": {},
        "status": 3,
        "id": 1,
        "createdOn": "2017-12-29T17:58:15.4855946",
        "createdBy": "System",
        "modifiedOn": "2017-12-29T17:58:15.4855946",
        "modifiedBy": "System"
    },
    {
        "enterpriseServiceId": 2,
        "enterpriseServices": {},
        "status": 1,
        "id": 2,
        "createdOn": "2017-12-29T17:58:15.4855946",
        "createdBy": "System",
        "modifiedOn": "2017-12-29T17:58:15.4855946",
        "modifiedBy": "System"
    }
]
status
属性是枚举值类型。我试图将其转换为字符串值,以便在输出中返回时更易于读取

下面是我从SQLServer数据库获取数据的代码

枚举

namespace CoreLibrary.Models.Enums
{
    public static class Common
    {
        public enum Status
        {


    Active = 1,
        InActive,
        Completed,
        Failed,
        InProgress,
        Pause,
        Resume,
        Skip,
        Running
    }
}
}

实体模型:

namespace CoreLibrary.Models.Entities
{
    public class Deployments : BaseProperties
    {
        public int EnterpriseServiceId { get; set; }
        [ForeignKey("EnterpriseServiceId")]
        public virtual EnterpriseServices EnterpriseServices { get; set; }
        public Common.Status Status { get; set; }
    }
}
[HttpGet("~/api/Deployments/GetWithJoins")]
public JsonResult GetWithJoins()
{
    try
    {
        // includeList for including data from external tables (JOIN Query)
        var includeList = new List<Expression<Func<Deployments, object>>>();
        includeList.Add(d => d.EnterpriseServices);

        IEnumerable<Deployments> result = _repository.GetByIdWithJoins(queryable: includeList).ToList();
        return Json(result);
    }
    catch (Exception ex)
    {
        var innerException = ex.InnerException == null ? null : ex.InnerException.Message.ToString();
        Response.StatusCode = (int)HttpStatusCode.BadRequest;
        return Json(new { status = "failed", message = ex.Message.ToString(), innerException = innerException });
    }
}
从数据库检索数据的方法:

namespace CoreLibrary.Models.Entities
{
    public class Deployments : BaseProperties
    {
        public int EnterpriseServiceId { get; set; }
        [ForeignKey("EnterpriseServiceId")]
        public virtual EnterpriseServices EnterpriseServices { get; set; }
        public Common.Status Status { get; set; }
    }
}
[HttpGet("~/api/Deployments/GetWithJoins")]
public JsonResult GetWithJoins()
{
    try
    {
        // includeList for including data from external tables (JOIN Query)
        var includeList = new List<Expression<Func<Deployments, object>>>();
        includeList.Add(d => d.EnterpriseServices);

        IEnumerable<Deployments> result = _repository.GetByIdWithJoins(queryable: includeList).ToList();
        return Json(result);
    }
    catch (Exception ex)
    {
        var innerException = ex.InnerException == null ? null : ex.InnerException.Message.ToString();
        Response.StatusCode = (int)HttpStatusCode.BadRequest;
        return Json(new { status = "failed", message = ex.Message.ToString(), innerException = innerException });
    }
}
[HttpGet(“~/api/Deployments/GetWithJoins”)]
公共JsonResult GetWithJoins()
{
尝试
{
//includeList用于包含来自外部表的数据(联接查询)
var includeList=新列表();
includeList.Add(d=>d.EnterpriseServices);
IEnumerable结果=_repository.GetByIdWithJoins(queryable:includeList.ToList();
返回Json(结果);
}
捕获(例外情况除外)
{
var innerException=ex.innerException==null?null:ex.innerException.Message.ToString();
Response.StatusCode=(int)HttpStatusCode.BadRequest;
返回Json(new{status=“failed”,message=ex.message.ToString(),innerException=innerException});
}
}
result变量返回我在本文开始时共享的输出。我正在尝试将
状态
转换为返回
字符串
值,而不是
int

我不确定这是否可能,或者这是将
status
int输出为字符串值的正确方法

我在网上试过,但我还没有找到一个满足我要求的解决方案。如果你们能给我任何帮助,我将不胜感激。:)

调用时,ASP.NET使用其创建一个。
JavaScriptSerializer
的默认配置将枚举转换为整数表示形式

我们可以将序列化程序配置为使用枚举的字符串表示形式。此处提供了有关如何执行此操作的详细信息:

如果这种方法没有吸引力,那么可以使用LINQ映射到匿名对象


虽然LINQ方法可以工作,但从长远来看,它可能会导致维护问题。

您可以简单地将int转换为enum?正如已经在这里讨论过的:嗯,一是一个单一的整数到字符串。如何在不迭代每个对象的情况下转换对象数组以更新
状态
?您的类部署是内部生成的吗?这是我为模型创建的一个类。我希望这能回答这个问题?您可以简单地拥有一个字符串属性:
publicstringstatustext{get{returnstatus.ToString();}}
,在这个classfirst方法中工作得非常好。我能够为
状态
检索带有字符串值的json。也谢谢你的选择。