繁体   English   中英

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

[英]ASP.NET MVC - passing multiple variables onto a model?

我目前有一个模型将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,我从类别列表中引用结果结果?

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

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

谢谢

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

看一下ASP.NET MVC - 如何使用View Models 您还可以查看一下automapper ,它是一个映射库,用于删除使用视图模型时涉及的大量样板代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM