วิธีส่งสองโมเดลพร้อมวันที่ที่เกี่ยวข้องเพื่อดู MVC4
ฉันมีข้อกำหนดระดับหนึ่งและซัพพลายเออร์ต้องตรวจสอบภายในว่าเขามีข้อกำหนดเฉพาะหรือไม่
ดังนั้นฉันจึงต้องแสดงรายการข้อกำหนดในคอลัมน์หนึ่งและการตรวจสอบ/คำตอบของซัพพลายเออร์ในคอลัมน์อื่นในมุมมองของฉัน ดังนั้นฉันเดาว่าฉันจะต้องผ่าน 2 แบบจำลองที่เกี่ยวข้องกัน จะทำอย่างไร? แล้วจัดเก็บคำตอบของซัพพลายเออร์ตามข้อกำหนดเฉพาะไว้ในฐานข้อมูล
นี่โมเดลของฉัน
namespace OTMS.Models
{
public class Requiernments
{
[Key]
public int RequiernmentId { get; set; }
public int ID { get; set; }//link to project Name
public string RequiernmentName { get; set; }
public string RequiernmentType { get; set; }
}
namespace OTMS.Models
{
public class Supplier
{
[Key]
public int SupplierId { get; set; }
public int RequiernmentId { get; set; }
public string SupplierName { get; set;
public string Answer{ get; set; }
}
}
อัปเดต:
มุมมองของฉัน:
namespace OTMS.ViewModel
{
public class SupplierAnswerViewModel
{
public Supplier Sup{ get; set; }
public Requiernments Req { get; set; }
}
}
ตัวควบคุมของฉัน:
public ProjectContext b = new ProjectContext();
public ActionResult ListRequiermentBySupplier(int ID) //Id of the project
{
var Project = b.RequiernmentEntries.Where(s => s.ID == ID).ToList();//geting all requierment under project
List<SupplierAnswerViewModel> listvm = new List<SupplierAnswerViewModel>();
SupplierAnswerViewModel vm = new SupplierAnswerViewModel();
vm.requirements = new Requiernments();
vm.requirements.RequiernmentId = ID;
vm.supplier = new Supplier();
vm.supplier.SupplierId = 2; //am testing supplier of this id=2 for now
listvm.Add(vm);
return View(listvm); ;
}
มุมมองของฉัน:
@model IEnumerable<OTMS.ViewModel.SupplierAnswerViewModel>
<table>
<tr>
<th>
RequiernmentName
</th>
<th>
RequiernmentType
</th>
<th>
UserId
</th>
<th>
SupplierName
</th>
<th>
Supplier Answer
</th>
<th></th>
</tr>
@if (Model != null)
{
foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.requirements.RequiernmentName)
</td>
<td>
@Html.DisplayFor(modelItem => item.requirements.RequiernmentType)
</td>
<td>
@Html.DisplayFor(modelItem => item.supplier.UserId)
</td>
<td>
@Html.DisplayFor(modelItem => item.supplier.SupplierName)
</td>
<td>
@Html.DisplayFor(modelItem => item.supplier.Answer)
</td>
<td>
<td>
@Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) |
</td>
</tr>
}
}
</table>