Asp.net mvc 3 如何在mvc3中从单视图的两个表或两个类中获取数据
如何在mvc3中从单个视图中的两个表或两个类中获取数据。 我想显示两个表中的数据。 我有一个家长班和两个孩子班。 即 公共类GetDocumentParent {Asp.net mvc 3 如何在mvc3中从单视图的两个表或两个类中获取数据,asp.net-mvc-3,Asp.net Mvc 3,如何在mvc3中从单个视图中的两个表或两个类中获取数据。 我想显示两个表中的数据。 我有一个家长班和两个孩子班。 即 公共类GetDocumentParent {在此处输入代码 公共列表getDocument{get;set;} 公共列表getDocumentRevision{get;set;} } 视图: " %> 型号: 一, 公开类文件 { 公共字符串文档\u名称 { 得到; 设置 } 可为空的公共活动日期 { 得到; 设置 } } 二, 公共类文件修订 { 公共字符串修订 { 得到;
在此处输入代码
公共列表getDocument{get;set;}
公共列表getDocumentRevision{get;set;}
}
视图:
" %>
型号:
一,
公开类文件
{
公共字符串文档\u名称
{
得到;
设置
}
可为空的公共活动日期
{
得到;
设置
}
}
二,
公共类文件修订
{
公共字符串修订
{
得到;
设置
}
}
提前谢谢有什么问题吗?
在控制器中使用:
var model = new GetDocumentParent
{
getDocument = db.Document.ToList(),
getDocumentRevision = db.DocumentRevisions.ToList()
};
return View(model);
var model = new GetDocumentParent();
model.getDocument = ...//Code that initialize getDocument
model.getDocumentRevision =...//Code that initialize getDocumentRevision
鉴于:
@Html.EditorFor(m=>m.getDocument);
@Html.EditorFor(m=>m.getDocumentRevision);
请始终记住,最好使用一个视图模型来表示发送到视图的数据。视图将根据您的视图模型执行所需的操作。下面的代码可以指导您,您只需将其更改为适合您的场景即可 假设我有一个客户,每个客户只有一个地址。我将创建一个名为
CustomerDetailsViewModel
的视图模型来表示此数据:
public class CustomerDetailsViewModel
{
public string FirstName { get; set; }
public string Lastname { get; set; }
public int Age { get; set; }
public string AddressLine1 { get; set; }
public string AddressLine2 { get; set; }
public string City { get; set; }
}
显示客户和客户地址详细信息的操作方法:
public class CustomerController : Controller
{
private readonly ICustomerRepository customerRepository;
public CustomerController(ICustomerRepository customerRepository)
{
// Check customerRepository for nulls
this.customerRepository = customerRepository;
}
public ActionResult Details(int id)
{
// Check that id is not zero or negative
Customer customer = customerRepository.GetById(id);
// Get the customer's address
Address address = customerRepository.GetCustomerAddress(id);
CustomerDetailsViewModel viewModel = new CustomerDetailsViewModel()
{
FirstName = customer.Firstname,
LastName = customer.LastName,
Age = customer.Age,
AddressLine1 = address.AddressLine1,
AddressLine2 = address.AddressLine2,
City = address.City
}
return View(viewModel);
}
}
上面的id
表示客户的唯一标识符。它用于返回客户:
Customer customer = customerRepository.GetById(id);
还用于返回特定客户的地址:
Address address = customerRepository.GetCustomerAddress(id);
例如,icCustomerRepository
实例由IoC容器注入
在您的视图中,您可以传递此视图模型,并可以根据需要显示数据:
@model MyProject.DomainModel.ViewModels.Customers.CustomerDetailsViewModel
<div class="content">
<div class="display-label">First Name: </div>
<div class="display-content">@Model.FirstName</div>
<div class="display-label">Last Name: </div>
<div class="display-content">@Model.LastName</div>
<div class="display-label">Age: </div>
<div class="display-content">@Model.Age</div>
<div class="display-label">Address Line 1: </div>
<div class="display-content">@Model.AddressLine1</div>
<div class="display-label">Address Line 2: </div>
<div class="display-content">@Model.AddressLine2</div>
<div class="display-label">City: </div>
<div class="display-content">@Model.City</div>
</div>
@model MyProject.DomainModel.ViewModels.Customers.CustomerDetailsViewModel
名字:
@Model.FirstName
姓氏:
@Model.LastName
年龄:
@模型年龄
地址行1:
@Model.AddressLine1
地址行2:
@Model.AddressLine2
城市:
@模范城市
我希望这有帮助。视图不显示秒的值class@Nitin:您可以调试并确定它是否填充了数据吗?您可以发布您使用的代码吗?与控制器方法和视图一起使用吗?您确定在第二类中有内容吗?item.DOCUMENT\u NAME)%>item.Revision)%>Controller:var model=new GetDocumentParent{getDocument=db.Document.ToList(),getDocumentRevision=db.DocumentRevisions.ToList()};返回视图(模型);
Address address = customerRepository.GetCustomerAddress(id);
@model MyProject.DomainModel.ViewModels.Customers.CustomerDetailsViewModel
<div class="content">
<div class="display-label">First Name: </div>
<div class="display-content">@Model.FirstName</div>
<div class="display-label">Last Name: </div>
<div class="display-content">@Model.LastName</div>
<div class="display-label">Age: </div>
<div class="display-content">@Model.Age</div>
<div class="display-label">Address Line 1: </div>
<div class="display-content">@Model.AddressLine1</div>
<div class="display-label">Address Line 2: </div>
<div class="display-content">@Model.AddressLine2</div>
<div class="display-label">City: </div>
<div class="display-content">@Model.City</div>
</div>