@model【强类型可以为多个??等待解决】

来源:互联网 发布:外汇ea编程 编辑:程序博客网 时间:2024/05/21 09:41
ASP.NET MVC提供了一种利用强类型的方法来将数据或对象传递到视图模板中。这种强类型的方法为你的编码过程提供了很丰富的编辑时的智能输入提示信息与非常好的编译时的检查

如下这一行代码表示将一个movies列表从控制器传递到了视图中。
return View(movies.ToList());

通过在视图模板文件的头部使用@model语句,视图模板可以识别传入的参数中的对象类型是否该视图模板所需要的对象类型

我们在创建这个Movies控制器所使用的模板时,我们在“添加视图”对话框中勾选了“创建强类型视图”复选框,在模型类下拉框中选择了“Movie(MvcMovie.Models)”, 在支架模板下拉框中选择了“List”。所以Visual Web Developer自动在我们的视图模板文件的第一行中添加了如下所示的语句。
@model IEnumerable<MvcMovie.Models.Movie>
    @model关键字允许我们在视图模板中直接访问在控制器类中通过使用强类型的“模型”而传递过来的Movie类的列表。例如,在我们的Index.cshtml视图模板中,我们可以通过foreach语句来遍历这个强类型的模型,访问其中的每一个Movie对象。代码如下所示。
@foreach (var item in Model) {
    <tr>
        <td>
            @Html.ActionLink("编辑", "Edit", new { id=item.ID }) |
            @Html.ActionLink("查看明细", "Details", new { id=item.ID }) |
            @Html.ActionLink("删除", "Delete", new { id=item.ID })
        </td>
        <td>
            @item.Title
        </td>
        <td>
            @String.Format("{0:d}", item.ReleaseDate)
        </td>
        <td>
            @item.Genre
        </td>
        <td>
            @String.Format("{0:c2}", item.Price)
        </td>
    </tr>
}
     因为这里的“模型”是强类型的(IEnumerable<Movie>),所以在循环遍历时“模型”中的每一个项目(“item”)也是一个强类型的Movie对象,可以直接访问该对象的每一个属性。同时这也意味着我们可以在编译时检查我们的代码,同时在书写代码时也可以使用代码编辑器提供的智能输入提示信息。
0 0
原创粉丝点击