【问题标题】:ASP.NET MVC - passing multiple variables onto a model?ASP.NET MVC - 将多个变量传递给模型?
【发布时间】:2013-12-17 17:15:10
【问题描述】:

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

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

即我需要根据匹配dogs.OutcomeIDresult["id"] 来获得result["Outcome"]

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

谢谢

【问题讨论】:

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


    【解决方案1】:

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

    看看这里ASP.NET MVC - How exactly to use View Models。此外,您可能想看看automapper,它是一个映射库,它删除了使用视图模型时涉及的大量样板代码。

    【讨论】:

    • 谢谢 :) 我现在就试试这个!
    猜你喜欢
    • 1970-01-01
    • 2020-01-09
    • 1970-01-01
    • 2015-06-30
    • 1970-01-01
    • 2016-02-21
    • 2011-05-08
    • 2023-04-05
    • 2018-12-02
    相关资源
    最近更新 更多