ASP.NET MVC-将多个变量传递到一个模型上

本文关键字:一个 模型 MVC- NET ASP 变量 | 更新日期: 2024-10-18 13:16:17

我目前有一个模型正在将dogs变量传递到视图中:

public ActionResult Summary()
{
    var dogs = repository.GetAllRecords().OrderByDescending(x => x.DateRecieved);
    return View("Summary", dogs);
}

它有一个名为OutcomeID的字段,该字段通过ID:引用另一个数组

    var categories = new List<Category>();
    try
    {
        this.Connect();
        var cmd = new SqlCommand
        {
            CommandText = "dbo.GetSummaryOutcomes",
            CommandType = CommandType.StoredProcedure,
            Connection = this.cn
        };
        var result = cmd.ExecuteReader();
        while (result.Read())
        {
            categories.Add(new Category
            {
                Name = result["Outcome"].ToString(),
                Value = result["id"].ToString(),
                InUse = bool.Parse(result["InUse"].ToString())
            });
        }
    }

在我看来,是否有这样的方法可以将这些结合起来,而不仅仅是OutcomeID,而是引用类别列表中的结果?

即我需要基于dogs.OutcomeIDresult["id"] 的匹配来获得result["Outcome"]

很抱歉,如果这听起来像是一个愚蠢的问题,在PHP中,这对我来说不是问题,但我对ASP.NET MVC很陌生,我不知道从哪里开始

感谢

ASP.NET MVC-将多个变量传递到一个模型上

您可以创建一个视图模型,这是ASP.NET MVC中的一种常见做法,基本上,您必须创建一个具有需要传递到视图的属性的新类,然后在控制器中,您将向视图发送视图模型的实例,并将数据转换为视图模型。

看看这里ASP.NET MVC-如何准确地使用视图模型。此外,您可能还想了解一下automapper,这是一个映射库,它删除了使用视图模型时涉及的许多样板代码。