【发布时间】:2014-05-03 12:22:58
【问题描述】:
我想在我的视图(一页)中显示最近和即将到来的约会。这是我的控制器,我可以在哪里添加第二个列表以及如何将它传递到同一个视图?我知道我不能返回两个列表,但必须有有办法吗?
public ActionResult Index()
{
if (Session["UserEmail"] != null)
{
string Email = (string)Session["UserEmail"];
using (var db = new MaindbModelDataContext())
{
var patient = db.Patients.FirstOrDefault(u => u.Email == (String)Session["UserEmail"]);
ViewBag.FirstName = patient.Name;
ViewBag.LastName = patient.Surname;
ViewBag.BirthDate = patient.Birthday;
ViewBag.Email = patient.Email;
}
using (var db = new MaindbModelDataContext())
{
var patient = db.Patients.FirstOrDefault(u => u.Email == (String)Session["UserEmail"]);
var listrecent = (from y in db.Appointments
where y.PatientNo == patient.PatientNo
where y.Date < DateTime.Today
orderby y.Date descending
select y).Take(5);
var TempRecent = new List<Models.AppModel>();
foreach (var item in listrecent)
{
var Temp = new Models.AppModel();
Temp.AppNo = item.AppNo;
Temp.PatientNo = (Int32)item.PatientNo;
Temp.Date = (DateTime)item.Date;
Temp.Status = item.Status;
Temp.Description = item.Description;
TempRecent.Add(Temp);
}
return View(TempRecent);
}
}
else
{
return RedirectToAction("RegAndLogin", "User");
}
}
}
}
这是我的观点
@model IEnumerable<DentAppSys.Models.AppModel>
@using System.Web.Helpers
@{
ViewBag.Title = "Index";
}
<section class="Patient-Dashboard">
<div id="dashboard_left">
<h1> Recent Appointments</h1>
@{
var Mygrid = new WebGrid(Model, selectionFieldName: "SelectedRow");
}
@Mygrid.GetHtml(
displayHeader: true,
mode: WebGridPagerModes.FirstLast,
columns: Mygrid.Columns
(
Mygrid.Column("Appointment No", "Appointment No",format: @<text>@item.AppNo</text>),
Mygrid.Column("Patient No", "Patient No", format: @<text>@item.PatientNo</text>) ,
Mygrid.Column("Description", "Description", format: @<text>@item.Description</text>),
Mygrid.Column("Date", "Date", format: @<text>@item.Date.ToString("yyyy/MM/dd")</text>),
Mygrid.Column("Status", "Status", format: @<text>@item.Status</text>)
))
</div>
<div id="dashboard_right">
<br/>
<h1>Incoming Appointments</h1>
/* HERE I WANT TO ADD MY SECOND LIST*/
</div>
</section>
编辑:
在使用 AppModel 的两个实例后,当我尝试等于 Temp.RecentIncoming.AppNo=item.AppNo. 时出现错误。
using (var db = new MaindbModelDataContext())
{
var patient = db.Patients.FirstOrDefault(u => u.Email == (String)Session["UserEmail"]);
var listincoming = (from y in db.Appointments
where y.PatientNo == patient.PatientNo
where y.Date > DateTime.Today
orderby y.Date descending
select y).Take(5);
var TempIncoming = new List<Models.RecentIncoming>();
foreach (var item in listincoming)
{
var Temp = new Models.RecentIncoming.;
Temp.RecentIncoming.AppNo?????= item.AppNo;
Temp.PatientNo = (Int32)item.PatientNo;
Temp.Date = (DateTime)item.Date;
Temp.Status = item.Status;
Temp.Description = item.Description;
TempIncoming.Add(Temp);
}
return View(TempIncoming);
}
【问题讨论】:
标签: list asp.net-mvc-4 view controller webgrid