简体   繁体   English

如何在ASP.NET MVC中的控制器中返回多个选定的值

[英]how to return multiple selected values in a controller in ASP.NET MVC

I have a controller which I want it to return only two selected rows to a view. 我有一个控制器,我希望它仅将两个选定的行返回到视图。 It looks like this: 看起来像这样:

public ActionResult Details(int sourceId, int targetId)
    {
        ConfigurationItem sourceItem = db.ConfigurationItemSet.Find(sourceId);
        ConfigurationItem targetItem = db.ConfigurationItemSet.Find(targetId);

        return View();
    }

What should I put in a "return"? 我应该在“退货”中输入什么? I want to make a view with only two specific rows selected by Id from the table and put it in two separate grids. 我想制作一个视图,其中仅包含ID从表中选择的两个特定行,并将其放在两个单独的网格中。

you can do it like 你可以做到

Action 行动

public ActionResult Details(int sourceId, int targetId)
{
    var sourceItem  = new list<ConfigurationItem>(); 

    ConfigurationItem sourceItem1 = db.ConfigurationItemSet.Find(sourceId);
    ConfigurationItem targetItem2 = db.ConfigurationItemSet.Find(targetId);
    sourceItem.add(sourceItem1);
    sourceItem.add(sourceItem2);
    return View(sourceItem.AsEnumerable());
}

View 视图

@model IEnumerable<ConfigurationItem>

You should use a ViewModel (thats the recommended way in MVC). 您应该使用ViewModel(这是MVC中的推荐方法)。

The ViewModel ViewModel

public class DetailsViewModel
{
    public ConfigurationItem TargetItem { get; set; }
    public ConfigurationItem SourceItem { get; set; }
}

The Action Method 行动方法

public ActionResult Details(int sourceId, int targetId)
{
    var viewModel = new DetailsViewModel();
    viewModel.TargetItem  = db.ConfigurationItemSet.Find(targetId);
    viewModel.SourceItem = db.ConfigurationItemSet.Find(sourceId);
    return View(viewModel);
}

The View (Razor) 视图(剃刀)

@model DetailsViewModel

// use Model.TargetItem  and Model.SourceItem 

If you are not using any Model then try using ViewBag.sourceItem to pass data from Controller to your View 如果您不使用任何模型,请尝试使用ViewBag.sourceItem将数据从Controller传递到View

ViewBag.sourceItem = db.ConfigurationItemSet.Find(sourceId);
ViewBag.targetItem = db.ConfigurationItemSet.Find(targetId);

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

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