【发布时间】:2016-03-22 19:26:22
【问题描述】:
我对 ASP.net MVC 很陌生。在我的项目中,我有 2 个模型。 Person.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
namespace CleryAct.Models
{
public class Person
{
[Key]
public string rockets { get; set; }
public bool csa { get; set; }
public string fname { get; set; }
public string lname { get; set; }
public string email { get; set; }
public virtual ICollection<Session> Sessions { get; set; }
}
}
Session.cs
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace CleryAct.Models
{
public class Session
{
[Key]
public int ID { get; set; }
public string rockets { get; set; }
public virtual Person Person { get; set; }
public DateTime training { get; set; }
}
}
我还有 1 个视图文件夹,里面有详细信息和索引视图。我通过在控制器下添加一个新的脚手架项目并将其链接到我的 Person Model 来创建它。在我的详细信息文件夹中,我尝试对出现的日期列表进行排序。我不知道如何在我的排序函数中调用日期。人员控制器详细信息.cs
public ActionResult Details(string id, string sortOrder)
{
ViewBag.CurrentSort = sortOrder;
ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Person person = db.Persons.Find(id);
if (person == null)
{
return HttpNotFound();
}
var persons = from s in db.Persons select s;
switch (sortOrder)
{
default:
persons = persons.OrderBy(s => s.Sessions);
break;
case "date_desc":
persons = persons.OrderByDescending(s => s.Sessions);
break;
}
return View(person);
}
详情查看代码
<h2>Details</h2>
<div>
<h4>Person</h4>
<hr />
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.lname), @Html.DisplayNameFor(model => model.fname)
</dt>
<dd>
@Html.DisplayFor(model => model.lname), @Html.DisplayFor(model => model.fname)
</dd>
<dt>
@Html.DisplayNameFor(model => model.rockets)
</dt>
<dd>
@Html.DisplayFor(model => model.rockets)
</dd>
<dt>
@Html.DisplayNameFor(model => model.email)
</dt>
<dd>
@Html.DisplayFor(model => model.email)
</dd>
<br />
<br />
<dt>
@Html.DisplayNameFor(model => model.Sessions)
</dt>
<dd>
<table class="table">
@foreach (var item in Model.Sessions) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.training)
</td>
</tr>
}
</table>
</dd>
</dl>
</div>
<p>
@Html.ActionLink("Edit", "Edit", new { id = Model.rockets }) | @Html.ActionLink("Back to List", "Index")
</p>
【问题讨论】:
-
所以你想把
Person和Sessions按training排序,对吧? -
在我的人员视图中,他们单击了一个按钮,其中列出了有关人员的更多详细信息。在该地区,我重新列出了他们的名字,并列出了他们之前的所有培训课程。我希望这些培训课程按日期排序。培训课程来自 Sessions 模型,但我不知道该怎么做。
标签: c# asp.net-mvc entity-framework sorting code-first