如何在ASP中返回控制器中的多个选定值.净MVC
本文关键字:MVC ASP 返回 控制器 | 更新日期: 2023-09-27 18:12:01
我有一个控制器,我希望它只返回两个选定的行到视图。它看起来像这样:
public ActionResult Details(int sourceId, int targetId)
{
ConfigurationItem sourceItem = db.ConfigurationItemSet.Find(sourceId);
ConfigurationItem targetItem = db.ConfigurationItemSet.Find(targetId);
return View();
}
我应该在"返回"中放什么?我想创建一个视图,其中仅包含由Id从表中选择的两行,并将其放在两个单独的网格中。
您应该使用ViewModel(这是MVC中推荐的方式)。
ViewModel
public class DetailsViewModel
{
public ConfigurationItem TargetItem { get; set; }
public ConfigurationItem SourceItem { get; set; }
}
动作方法
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
你可以这样做
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());
}
<<p> 视图/strong> @model IEnumerable<ConfigurationItem>
如果您不使用任何模型,然后尝试使用ViewBag.sourceItem
从控制器传递数据到您的视图
ViewBag.sourceItem = db.ConfigurationItemSet.Find(sourceId);
ViewBag.targetItem = db.ConfigurationItemSet.Find(targetId);