如何实现一个MVC模型;t直接链接到数据库
本文关键字:链接 数据库 模型 一个 何实现 实现 MVC | 更新日期: 2023-09-27 18:00:15
我正在尝试实现一个视图,该视图显示在显示之前已修改的数据库中的信息。例如,我试图添加加成的劳动力和硬件成本,以给出最终价格。问题是我不能使用foreach循环在视图中显示它,因为它是List
,而我在将它声明为IEnumerable
时遇到了问题,因为它不允许我使用Add()
函数。这是我的型号
namespace Myname.Models{
using System;
using System.Collections.Generic;
public partial class Pricing
{
public List<int> ID { get; set; }
public List<string> Manufac { get; set; }
public List<string> Model { get; set; }
public List<string> Service { get; set; }
public List<string> Type { get; set; }
public List<int> Price { get; set; }
}
这是我的控制器中的索引方法
private WTEntities db = new WTEntities();
// GET: /JobInformation/
[Authorize(Roles = "Employee")]
public ActionResult Index()
{
Pricing prices = new Pricing();
prices.ID = new List<int>();
prices.Manufac = new List<string>();
prices.Model = new List<string>();
prices.Price = new List<int>();
prices.Service = new List<string>();
foreach(var item in db.JobInformations)
{
prices.ID.Add(item.ID);
prices.Manufac.Add(item.Manufac);
prices.Model.Add(item.Model);
prices.Service.Add(item.Service);
prices.Price.Add(((int)item.MarkupCostCents + (int)item.LaborCostCents + (int)item.HardwareCostCents) / 100);
}
return View(prices);
}
这是我的看法,
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Type)
</td>
<td>
@Html.DisplayFor(modelItem => item.Manufac)
</td>
<td>
@Html.DisplayFor(modelItem => item.Model)
</td>
<td>
@Html.DisplayFor(modelItem => item.Service)
</td>
<td>
@Html.DisplayFor(modelItem => item.Price)
</td>
</tr>
}
您的模型设计不正确,无法实现您想要实现的目标。
您应该创建一个如下所示的视图模型:
public class Pricing
{
public int ID { get; set; }
public string Manufac { get; set; }
public string Model { get; set; }
public string Service { get; set; }
public string Type { get; set; }
public int Price { get; set; }
}
然后在您的控制器中:
var prices = new List<Pricing>();
foreach(var item in db.JobInformations)
{
var price = new Pricing();
price.ID = item.ID;
price.Manufac = item.Manufac;
price.Model = item.Model;
price.Service = item.Service;
price.Price = ((int)item.MarkupCostCents + (int)item.LaborCostCents + (int)item.HardwareCostCents) / 100;
prices.Add( price );
}
return View(prices);
现在,在您的视图中,您可以完全执行您已经编写的内容(只需确保将@model声明更改为List)。