C# ASP.NET:无法从视图中的视图模型显示数据
我刚开始使用ASP.NET,正在通过youtube和谷歌的大量教程进行培训,我可以找到这些教程 但我似乎找不到解决这个问题的办法 我的目的是在表中生成客户的表视图,并使用viewmodel将其列为c1和c2 我的viewmodel代码:C# ASP.NET:无法从视图中的视图模型显示数据,c#,asp.net,C#,Asp.net,我刚开始使用ASP.NET,正在通过youtube和谷歌的大量教程进行培训,我可以找到这些教程 但我似乎找不到解决这个问题的办法 我的目的是在表中生成客户的表视图,并使用viewmodel将其列为c1和c2 我的viewmodel代码: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using Alpha.Models; nam
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Alpha.Models;
namespace Alpha.ViewModels
{
public class ListCustomersViewModel
{
public List<Customer> Customers { get; set; }
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用System.Web.Mvc;
使用阿尔法模型;
名称空间Alpha.ViewModels
{
公共类ListCustomerViewModel
{
公共列表客户{get;set;}
}
}
我的控制器代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Alpha.Models;
using Alpha.ViewModels;
namespace Alpha.Controllers
{
public class CustomersController : Controller
{
// GET: Customers/ListCustomer
public ActionResult ListCustomers()
{
var customers = new List<Customer>
{
new Customer { Name = "C1" , Id = 1},
new Customer { Name = "C2" , Id = 2}
};
var viewModel = new ListCustomersViewModel
{
Customers = customers
};
return View(viewModel);
}
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用System.Web.Mvc;
使用阿尔法模型;
使用Alpha.ViewModels;
名称空间Alpha.Controllers
{
公共类CustomerController:控制器
{
//获取:客户/列表客户
公共行动结果列表客户()
{
var客户=新列表
{
新客户{Name=“C1”,Id=1},
新客户{Name=“C2”,Id=2}
};
var viewModel=新的ListCustomerViewModel
{
顾客=顾客
};
返回视图(viewModel);
}
}
}
我的视图代码:
@model Alpha.ViewModels.ListCustomersViewModel
@{
ViewBag.Title = "ListCustomers";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h1>Customers</h1>
<div class="container">
<table class="table">
<thread>
<tr>
<th>Customer</th>
</tr>
</thread>
<tbody>
<tr>
<td>*I DONT KNOW WHAT I SHOULD TYPE HERE TO PASS THE INFORMATION IN (C1)</td>
<td>*I DONT KNOW WHAT I SHOULD TYPE HERE TO PASS THE INFORMATION IN (C2)</td>
</tr>
</tbody>
</table>
</div>
@model Alpha.ViewModels.listCustomerViewModel
@{
ViewBag.Title=“ListCustomers”;
Layout=“~/Views/Shared/_Layout.cshtml”;
}
客户
顾客
*我不知道我应该在这里键入什么来传递(C1)中的信息
*我不知道我应该在这里键入什么来传递(C2)中的信息
我真的希望有人能在这件事上给我一个指导。谢谢。您需要在模型上循环并提取信息以构建表
<tbody>
@foreach (var item in Model.Customers)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Id)
</td>
</tr>
}
</tbody>
@foreach(Model.Customers中的var项)
{
@DisplayFor(modelItem=>item.Name)
@DisplayFor(modeleItem=>item.Id)
}
您需要在模型上循环并提取信息以构建表
<tbody>
@foreach (var item in Model.Customers)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Id)
</td>
</tr>
}
</tbody>
@foreach(Model.Customers中的var项)
{
@DisplayFor(modelItem=>item.Name)
@DisplayFor(modeleItem=>item.Id)
}
首次在视图中使用@model IEnumerable
然后你们可以在桌子上用
<tbody>
@foreach (Customer cust in Model)
{
<tr>
<td>@Html.DisplayFor(modelItem => cust.Name)</td>
</tr>
}
</tbody>
@foreach(模型中的客户)
{
@DisplayFor(modelItem=>cust.Name)
}
您可以了解如何使用.net 首次在视图中使用
@model IEnumerable
然后你们可以在桌子上用
<tbody>
@foreach (Customer cust in Model)
{
<tr>
<td>@Html.DisplayFor(modelItem => cust.Name)</td>
</tr>
}
</tbody>
@foreach(模型中的客户)
{
@DisplayFor(modelItem=>cust.Name)
}
您可以了解如何使用.net 您的
视图模型
包含一个列表
,这意味着其中包含多个实体,因此基本上没有将类传递给您的模型那么简单。要从列表中提取数据,您需要使用,正如其他人所解释的,您可以使用foreach
来显示数据:
<tbody>
@foreach (var item in Model.Customers)
{
<tr>
<td>
//one way to show the data
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
//or you can simple call the item object and declare the property you want to show
@item.Id
</td>
</tr>
}
</tbody>
@foreach(Model.Customers中的var项)
{
//显示数据的一种方法
@DisplayFor(modelItem=>item.Name)
//或者,您可以简单地调用item对象并声明要显示的属性
@项目Id
}
您的视图模型
包含一个列表
,这意味着其中包含多个实体,因此基本上没有将类传递给模型那么简单。要从列表中提取数据,您需要使用,正如其他人所解释的,您可以使用foreach
来显示数据:
<tbody>
@foreach (var item in Model.Customers)
{
<tr>
<td>
//one way to show the data
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
//or you can simple call the item object and declare the property you want to show
@item.Id
</td>
</tr>
}
</tbody>
@foreach(Model.Customers中的var项)
{
//显示数据的一种方法
@DisplayFor(modelItem=>item.Name)
//或者,您可以简单地调用item对象并声明要显示的属性
@项目Id
}
您上面发布的代码是什么?什么不起作用了?@pijemcolu问题的标题错了。OP知道如何向视图发送数据,但他不知道如何在视图中显示数据;o) @pijemcolu抱歉,我的不好还不够清楚,问题在于视图部分“*我不知道我应该在这里键入什么来在(C1)中传递信息)*我不知道我应该在这里键入什么来在(C2)中传递信息”@SirRufo感谢您的提醒,下次将以更好的标题发布=)无需感到抱歉,我只是想,如果你把问题放在最上面的某个地方,会让问题更加清晰。你可以编辑你的问题。你上面贴的代码是什么?什么不起作用了?@pijemcolu问题的标题错了。OP知道如何向视图发送数据,但他不知道如何在视图中显示数据;o) @pijemcolu抱歉,我的不好还不够清楚,问题在于视图部分“*我不知道我应该在这里键入什么来在(C1)中传递信息)*我不知道我应该在这里键入什么来在(C2)中传递信息”@SirRufo感谢您的提醒,下次将以更好的标题发布=)无需感到抱歉,我只是想,如果你把问题放在最上面的某个地方,会让问题更加清晰。您可以编辑问题。视图的模型类型为ListCustomerViewModel。但是可以为IEnumerable设置一个显示模板;o) @SirRufo是的,你是对的,但是这里不需要ListCustomerViewModel.:)你怎么知道这是不必要的?你知道整个项目吗?如果是的话,那么你可能是对的我不知道整个项目,