MVC 5返回多个表到索引操作结果

本文关键字:索引 操作 结果 返回 MVC | 更新日期: 2023-09-27 18:11:06

我有一个问题,我需要返回多个表到一个视图。到目前为止,我的索引操作结果只获得一个表,但这需要修改。

下面是控制器的代码:
public class ResidentialBuildingController : Controller
{
    private BIRDSResidentialEntities db = new BIRDSResidentialEntities();
    // GET: ResidentialBuilding
    public ActionResult Index()
    {
        return View(db.ResidentialBuildings.ToList());
        //return View();
    }

到目前为止,它只返回db.ResidentialBuildings。我还需要它返回db。ResidentialLocations和其他表。请一定让我知道。

以下是residentialbuilding视图的代码:

@model BIRDS.ViewModel.BuildingViewModel
@{
    ViewBag.Title = "ResidentialBuilding";
}
<div class="row">
    <div class="col-md-3">
        @Html.DropDownList("ResidentialBuildingType", new SelectList(Model.Select(x => x.type).Distinct()), "Select Building Type")
    </div>
    <div class="col-md-3">
        <select id="ResidentialBuildingStories" name="ResidentialBuildingStories"></select>
    </div>
    <div class="col-md-3">
        <select id="ResidentialBuildingSize" name="ResidentialBuildingSize"></select>
    </div>
    <div class="col-md-offset-2 col-md-1">
        <button type="button" class="btn btn-default btn-round" id="info" data-toggle="tooltip" data-placement="top" title="Click for more info">
            <span class="glyphicon glyphicon-info-sign"></span>
        </button>
    </div>
</div>
<div class="row" id="bldgInfo">
    <div class="col-md-2" id="titles">
    </div>
    <div class="col-md-2" id="values">
    </div>
</div>
ViewModel的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using BIRDS.Models;
namespace BIRDS.ViewModel
{
    public class BuildingViewModel
    {
        public List<ResidentialBuilding> ResidentialBuildings { get; set; }
        public List<ResidentialLocation> ResidentialLocations { get; set; }
    }
}

BuildingViewModel位于名为ViewModel

MVC 5返回多个表到索引操作结果

的文件夹中

您需要创建ViewModel:

public Class BuildingViewModel
{
public List<ResidentialBuilding> ResidentialBuildings {get;set;}
public List<ResidentialLocation> ResidentialLocations {get;set;}
}

和现在的控制器:

public class ResidentialBuildingController : Controller
{
    private BIRDSResidentialEntities db = new BIRDSResidentialEntities();
    // GET: ResidentialBuilding
    public ActionResult Index()
    {
        BuildingViewModel model = new BuildingViewModel();
        model.ResidentialBuildings  = db.ResidentialBuildings.ToList();
        model.ResidentialLocations  = db.ResidentialLocations.ToList();
        return View(model);
    }
}

并使用以下视图模型强类型地键入视图:

@model YourNameSpace.ViewModels.BuildingViewModel

有关详细信息,请参考以下链接:

http://blogs.msdn.com/b/simonince/archive/2010/01/26/view-models-in-asp-net-mvc.aspx

http://www.dotnet-tricks.com/Tutorial/mvc/QHQT270712-Understanding-ViewModel-in-ASP.NET-MVC.html

http://sampathloku.blogspot.com/2012/10/how-to-use-viewmodel-with-aspnet-mvc.html

http://www.edandersen.com/2013/05/30/asp-net-mvc-basics-part-2-viewmodel-to-model-mapping-and-editing/