将数据添加到现有模型

时间:2020-07-23 13:46:08

标签: c# model-view-controller model

对编码不熟悉。抱歉,这是一个新手问题,但我有点迷茫。

我有一个返回存储过程并相应保存到模型的模型,现在我想稍后再向模型的字段中添加数据。基本上,我的模型是一个对象数组,但是当我添加一个新数组时,它在每个对象上显示整个数组,并且在每个对象中都相同。.即

[0] = Name
    = Country
    = Type 

现在我有另一个应具有CurrentPosition的属性,即动态地,例如1个下一个属性应具有2个,以此类推...

我创建了这段代码

CurrentStep = System.Web.HttpContext.Current.Session["currentStepPosition"];
int stepCount = Convert.ToInt32(CurrentStep);
List<int> stepCountList = new List<int>();
for (int i = 1; i <= stepCount; i++)
{
    stepCountList.Add(i);
}

上面的代码输出一个数字数组,即1,2,3,4,5,依此类推...

但是,当我将其添加到每个对象的模型中时,我的模型具有上述属性,但是没有为每个属性赋予唯一的CurrentPosition即每个对象1依此类推,它只是显示了整个数组在每个对象中...

我该如何克服?

### EDIT包括添加到模型中###

    Error = model?.Error == null ? null : new BrokenRule()
    {
        Message = model.Error.Message,
        Name = model.Error.Name,
    };
   
    RecipeStages = model?.Processes?.Select(obj => new GetReleasedRecipeStepsModel()
    {
        StepId = obj.StepId,
        StepType = obj.StepType,
        StepOrder = obj.StepOrder,
        StepName = obj.StepName,
        NumberOfProperties = obj.NumberOfProperties
        //CurrentStepPosition = currentStepConverted
    })?.ToArray() ?? new GetReleasedRecipeStepsModel[] { };

有没有办法遍历模型?在添加单个属性数据?在它被推到视图之前?

1 个答案:

答案 0 :(得分:1)

Select方法有一个重载,可以接收每个项目的索引。因此,您可以使用它来计算CurrentStepPosition,如下所示:

RecipeStages = model?.Processes?.Select((obj, index) => new GetReleasedRecipeStepsModel()
{
    StepId = obj.StepId,
    StepType = obj.StepType,
    StepOrder = obj.StepOrder,
    StepName = obj.StepName,
    NumberOfProperties = obj.NumberOfProperties
    CurrentStepPosition = index + 1
})?.ToArray() ?? new GetReleasedRecipeStepsModel[] { };