ASP.NET MVC - 将多个变量传递给模型?

时间:2013-12-17 17:15:11

标签: c# asp.net asp.net-mvc

我目前有一个将dog变量传递给视图的模型:

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,我从类别列表中引用结果结果?

即我需要根据匹配result["Outcome"]dogs.OutcomeID

获得result["id"]

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

谢谢

1 个答案:

答案 0 :(得分:4)

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

看看ASP.NET MVC - How exactly to use View Models。您还可以查看automapper,它是一个映射库,用于删除在处理视图模型时涉及的大量样板代码。