我使用脚手架选项来创建一个SubscriptionController
.
以下是一些代码片段:
In Controller:
public ActionResult Index()
{
var subscriptions = db.Subscriptions;
return View(subscriptions.ToList());
}
In View:
@model IEnumerable<Liquidity.Domain.Entity.Subscription>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table>
<tr>
<th>
@Html.DisplayNameFor(model => model.Amount)
</th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Amount)
</td>
</td>
</tr>
}
</table>
For my subscription model, I have:
public decimal Amount { get; set; }
以下是我的问题:
我认为
Model
绑定到一个列表而Subscription
不是一个Subscription
身份,因为这表明:@foreach(模型中的变量项)
这个对吗?
如果 1 是正确的,为什么在这一行:
@Html.DisplayNameFor(model => model.Amount)
模型会有
Amount
吗?这表明模型绑定到单个“订阅”。对于这一行:
@Html.DisplayFor(modelItem => item.Amount)
modelItem 和 item 绑定到什么?为什么 lambda 接受 modelItem 但不使用它?
请解释模型,模型和模型项到底是什么。
谢谢。