【发布时间】:2018-03-21 20:26:47
【问题描述】:
我正在使用存储过程(没有实体框架)开发一个 ASP MVC 项目。
在公式中设置数据后,我只想显示最后一条记录,而不是从我的数据库中获取所有数据。
我知道我可以编写另一种仅选择最后一条记录的方法,但我想知道是否有解决方案可以从视图中检索它。
这是我尝试过的:
@for (var i = 0; i < 1; i++) {
@foreach (var item in Model)
{
<tr>
<th>
@Html.DisplayNameFor(model => model.FirstName)
</th>
<td>
@Html.DisplayFor(modelItem => item.FirstName)
</td>
</tr>
<tr>
<th>
@Html.DisplayNameFor(model => model.LastName)
</th>
<td>
@Html.DisplayFor(modelItem => item.LastName)
</td>
</tr>
<tr>
<th>
@Html.DisplayNameFor(model => model.Address)
</th>
<td>
@Html.DisplayFor(modelItem => item.Address)
</td>
</tr>
<tr>
<th>
@Html.DisplayNameFor(model => model.Email)
</th>
<td>
@Html.DisplayFor(modelItem => item.Email)
</td>
</tr>
<tr>
<th>
@Html.DisplayNameFor(model => model.Phone)
</th>
<td>
@Html.DisplayFor(modelItem => item.Phone)
</td>
</tr>
<tr>
<th>
@Html.DisplayNameFor(model => model.Date)
</th>
<td>
@Html.DisplayFor(modelItem => item.Date.Date)
</td>
</tr>
<tr>
<th>
@Html.DisplayNameFor(model => model.Time)
</th>
<td>
@Html.DisplayFor(modelItem => item.Time)
</td>
</tr>
<tr>
<th>
@Html.DisplayNameFor(model => model.Nbre_P)
</th>
<td>
@Html.DisplayFor(modelItem => item.Nbre_P)
</td>
</tr>
<tr>
<th>
@Html.DisplayNameFor(model => model.Items)
</th>
<td>
@Html.DisplayFor(modelItem => item.Items)
</td>
</tr>
} }
模型 Bestellung.cs :
public class Bestellung
{
public int BestellungId { get; set; }
[Required]
public DateTime Date { get; set; }
[Required]
public string Time { get; set; }
public int Nbre_P { get; set; }
public string Items { get; set; }
[Display(Name = "Phone Number")]
[DataType(DataType.PhoneNumber)]
[Required(ErrorMessage = "Phone is required.")]
[RegularExpression(@"^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$", ErrorMessage = "Entered phone format is not valid.")]
public String Phone { get; set; }
[Display(Name = "Email")]
[EmailAddress(ErrorMessage = "Invalid Email Address")]
[Required(ErrorMessage = "Email is required.")]
[DataType(DataType.EmailAddress)]
[StringLength(30)]
public string Email { get; set; }
[Display(Name = "First Name")]
[Required(ErrorMessage = "First name is required.")]
[StringLength(30)]
public string FirstName { get; set; }
[Display(Name = "Last Name")]
[Required(ErrorMessage = "Last name is required.")]
[StringLength(30)]
public string LastName { get; set; }
[Display(Name = "Address")]
[Required(ErrorMessage = "Address is required.")]
[StringLength(30)]
public string Address { get; set; }
}
【问题讨论】:
-
如果您只想在视图中显示最后一条记录,那么为什么要从数据库中查询多条记录?为什么要向视图传递多条记录?只需查询您需要的内容,然后只将您需要的内容传递给您的视图。
-
是的,我知道,但多个查询用于另一个视图
-
这里的
model是什么?它应该是一个集合,因此您可以对其进行迭代。理想情况下,您应该只获取最后一条记录,但根据您的要求,在变量var lastRecord = model.LastOrDefault();或`var lastRecord = model[model.count-1];'中获取最后一条记录是有意义的.在这种情况下你不需要循环 -
谢谢你们,但 mjwills 的建议效果很好,@mjwills 你能不能把你的解决方案发布在我可以接受的答案中
标签: c# sql-server asp.net-mvc stored-procedures