c# – 对ASP.NET视图中的“模型”含义感到困惑
所以这是一个来自asp.net的MSDN教程的视图文件:
@model EFDBfirst.Models.Student @{ ViewBag.Title = "Details"; } <h2>Details</h2> <div> <h4>Student</h4> <hr /> <dl class="dl-horizontal"> <dt> @Html.DisplayNameFor(model => model.LastName) </dt> <dd> @Html.DisplayFor(model => model.LastName) </dd> <dt> @Html.DisplayNameFor(model => model.FirstName) </dt> <dd> @Html.DisplayFor(model => model.FirstName) </dd> <dt> @Html.DisplayNameFor(model => model.EnrollmentDate) </dt> <dd> @Html.DisplayFor(model => model.EnrollmentDate) </dd> <dt> @Html.DisplayNameFor(model => model.MiddleName) </dt> <dd> @Html.DisplayFor(model => model.MiddleName) </dd> </dl> <table class="table"> <tr> <th> Course Title </th> <th> Grade </th> <th> Credits </th> </tr> @foreach (var item in Model.Enrollments) { <tr> <td> @Html.DisplayFor(modelItem => item.Course.Title) </td> <td> @Html.DisplayFor(modelItem => item.Grade) </td> <td> @Html.DisplayFor(modelItem => item.Course.Credits) </td> </tr> } </table> </div> <p> @Html.ActionLink("Edit","Edit",new { id = Model.StudentID }) | @Html.ActionLink("Back to List","Index") </p> 在第一行有模型和模型.我很确定模特 在那里有几行@ Html.DisplayNameFor(model => model.LastName),里面有模型.这个与第一行中的模型有什么不同? 然后再次出现@foreach(Model.Enrollments中的var项),其中包括Model,现在这个不以“s”结尾,所以我认为它不是指项目根目录中的Models文件夹.那是什么? 还有modelItem,我不确定它只是一个参数还是指这个类中的东西. 最后一个是@ Html.ActionLink(“编辑”,“编辑”,新{id = Model.StudentID}) 解决方法
此@model EFDBfirst.Models.Student声明此视图中使用的模型是Student.
在您查看的内部,您可以使用模型参考您的模型.因此,如果您想要迭代已传递给此视图的学生对象的注册,则只需执行以下操作: @foreach(var enrollment in Model.Enrollments) { } 对此,@ Html.DisplayNameFor(model => model.LastName)这是一个HTML帮助器,在这种情况下将为您创建一个名为LastName的模型属性的标签. 关于html助手,请看看here.此外,你可以传递给这个帮手: @Html.DisplayNameFor(m => m.LastName) 或这一行: @Html.DisplayNameFor(x => x.LastName) 你使用模型并不重要.这只是对传递给View的模型的引用. 最后但同样重要的是,@ Html.ActionLink(“编辑”,新的{id = Model.StudentID})也是一个创建html链接的html助手. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |