实用干货!ASP.Net 强类型页面和model.Net/ASP开发工程师

/ 华南女子学院传播学院.Net/ASP开发工程师 / 2016-06-16

.net,MVC,强类型页面,model

ASP.NET MVC中,要将控制器中的数据传到VIEW上是不是非常麻烦的一件事呢?你是不是也因为这个困扰过呢,知道是使用ViewData还是使用ViewBag呢,那么今天我们就来说说强类型的方法将数据传递到视图模版中把。

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对象,可以直接访问该对象的每一个属性。同时这也意味着我们可以在编译时检查我们的代码,同时在书写代码时也可以使用代码编辑器提供的智能输入提示信息。

是不是很容易理解,也非常实用呢?汇鱼人才每天发布使用咨询,想要了解更多就来关注汇鱼人才吧。



公众号,微信

汇鱼网海峡创乐汇
汇鱼网海峡创乐汇