asp.net-mvc MVC 在一个视图中显示多个表?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/19538305/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
MVC display multiple tables in one view?
提问by dahund
I have created a parent model insertBreweryModel.cs:
我创建了一个父模型 insertBreweryModel.cs:
public class InsertBreweryModel
{
public IList<Breweries> Breweries { get; set; }
public IList<BreweryData> BreweryData { get; set; }
}
in my view i reference it like:
在我看来,我像这样引用它:
@model BaPP.Models.InsertBreweryModel
now i succesfully can do iterate through items in Breweries using foreach, but how can i us displayfor to display data from other tablem which has the same id as item.id?
现在我可以成功地使用 foreach 遍历 Breweries 中的项目,但是我如何使用 displayfor 来显示来自与 item.id 具有相同 ID 的其他 tablem 的数据?
@foreach (var item in Model.Breweries)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.BreweryName)
</td>
<td>@Html.DisplayForModel(Model.BreweryData Pseudo: show data from brewerydata.column where id = item.id
</td>
hope someone can help?
希望有人能帮忙?
采纳答案by dahund
For all whom may have the same issue, the first answer was correct but i was missing the other DB in my view. This is how i solved it.
对于所有可能有相同问题的人来说,第一个答案是正确的,但我认为我错过了另一个数据库。这就是我解决它的方法。
My model
我的模型
namespace BaPP.Models
{
public class InsertBreweryModel
{
public Breweries Breweries { get; set; }
public BreweryData BreweryData { get; set; }
}
}
My controller
我的控制器
namespace BaPP.Controllers
{
public class BreweryController : Controller
{
private ProjectContext db = new ProjectContext();
//
// GET: /Default1/
public ActionResult Index()
{
var viewModel = from o in db.Breweries join o2 in db.BreweryData on o.BreweryId equals o2.BreweryId where o.BreweryId.Equals(o2.BreweryId) select new InsertBreweryModel { Breweries = o, BreweryData = o2};
return View(viewModel);
}
My view
我的看法
@model IEnumerable<BaPP.Models.InsertBreweryModel>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Breweries.BreweryName)
</td>
<td>
@Html.DisplayFor(modelItem => item.BreweryData.DescriptionText)
</td>
Again thx for both comments :-)
再次感谢这两条评论:-)
回答by Bhupendra Shukla
Try this:
尝试这个:
@foreach (var item in Model.Breweries)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.BreweryName)
</td>
<td>
@Html.DisplayFor(modelItem => item.tableName.tableFieldname)
</td>
</tr>
}
回答by 111
Try to use something like that
尝试使用类似的东西
@foreach (var item in Model.Breweries)
{
@Html.DisplayFor(model => item.FieldForBreweries)
foreach (var item1 in Model.BreweryData.Where(x => x.Id == item.Id))
{
@Html.DisplayForModel(item1)
}
}

