加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 对ASP.NET视图中的“模型”含义感到困惑

发布时间:2020-12-15 23:47:08 所属栏目:百科 来源:网络整理
导读:所以这是一个来自asp.net的MSDN教程的视图文件: @model EFDBfirst.Models.Student@{ ViewBag.Title = "Details";}h2Details/h2div h4Student/h4 hr / dl class="dl-horizontal" dt @Html.DisplayNameFor(model = model.LastName) /dt dd @Html.DisplayFor(m
所以这是一个来自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>

在第一行有模型和模型.我很确定模特
指的是项目根目录中的“Models”文件夹.

在那里有几行@ Html.DisplayNameFor(model => model.LastName),里面有模型.这个与第一行中的模型有什么不同?

然后再次出现@foreach(Model.Enrollments中的var项),其中包括Model,现在这个不以“s”结尾,所以我认为它不是指项目根目录中的Models文件夹.那是什么?

还有modelItem,我不确定它只是一个参数还是指这个类中的东西.

最后一个是@ Html.ActionLink(“编辑”,“编辑”,新{id = Model.StudentID})
,它类似于foreach中使用的那个,这指的是同一个东西吗?

解决方法

此@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助手.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读