MVCmvc4.0创建强类型视图只能在创建的时候加吗

asp.net mvc关于强类型视图_百度知道
asp.net mvc关于强类型视图
是的,只能这样做。所谓强类型,就是说页面只能接收一个对象。这个对象里面包含多个对象集合。在页面循环遍历这此对象。
其他类似问题
为您推荐:
Product&gt:public class MyViewModel{
public IEnumerable&lt,建议定义一个视图模型,只需要在视图中指定你定义的视图模型即可,不需要做类型转换。这个模型中可以包括一些页面的基本信息以及产品和新闻的列表; Products{Article& News{}
public IEnumerable&lt是的
mvc的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁MVC里面的强类型视图的确是一个很强大的东西,结合EF(Entity Framework)的话更加强大,可以直接把你的数据库直接生成强视图的增删查改的视图,在视图中所有Model的属性均动态的,我们不必知道它实际的类型,而且又很容使用@的模型关键字来表示模型的类型名称。这里的这个类是我自己在新建ViewModel下的一个普通的的类,可以使用EF从数据库生成的类,不过考虑到我的表里面有一些虚拟外键属性,就必须要有个ViewModel来专门生成视图,都一样,其实意思就是我们必须要先有个模型model,比如我上面这个模型。然后接下来:就是添加视图,在指定位置,这个我不细说了。在上面的我选择了强类型视图,模型类中的就是我刚刚创建的类,支架模板里面有很多模板,有Empty,Details,Edit,Delete,Create,List,这里我选择了Edit,也就是用来编辑我数据库中的记录,然后你就会发现强大的地方来了,MVC自动按照你的要求生成了一个适合你那个数据表的编辑模板,里面也把所有的信息都添加了可编辑的模板ps:如果这个类是你刚刚创建的话需要去重新生成一下项目才能在模型类中找到它其中上面这个@model MODEL.ViewModel.Admin正是来告诉视图,这个视图的model属性到底是个什么属性,然后便可以通过控制器传过来的模型分别的填充下面的强类型空缺@model MODEL.ViewModel.Admin@{ Layout = null;}&!DOCTYPE html&&html&&head& &meta name=&viewport& content=&width=device-width& /& &title&EditAdmin&/title&&/head&&body& &script src=&~/Scripts/jquery-1.8.2.min.js&&&/script& &script src=&~/Scripts/jquery.validate.min.js&&&/script& &script src=&~/Scripts/jquery.validate.unobtrusive.min.js&&&/script&
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
&fieldset&
&legend&Admin&/legend&
@Html.HiddenFor(model =& model.Id)
&div class=&editor-label&&
@Html.LabelFor(model =& model.LoginName)
&div class=&editor-field&&
@Html.EditorFor(model =& model.LoginName)
@Html.ValidationMessageFor(model =& model.LoginName)
&div class=&editor-label&&
@Html.LabelFor(model =& model.Number)
&div class=&editor-field&&
@Html.EditorFor(model =& model.Number)
@Html.ValidationMessageFor(model =& model.Number)
&div class=&editor-label&&
@Html.LabelFor(model =& model.Password)
&div class=&editor-field&&
@Html.PasswordFor(model =& model.Password)
@Html.ValidationMessageFor(model =& model.Password)
&div class=&editor-label&&
@Html.LabelFor(model =& model.Remark)
&div class=&editor-field&&
@Html.EditorFor(model =& model.Remark)
@Html.ValidationMessageFor(model =& model.Remark)
@*&div class=&editor-label&&
@Html.LabelFor(model =& model.Json)
&div class=&editor-field&&
@Html.EditorFor(model =& model.Json)
@Html.ValidationMessageFor(model =& model.Json)
&div class=&editor-label&&
@Html.LabelFor(model =& model.DepartmentId)
&div class=&editor-field&&
@Html.DropDownListFor(model =& model.DepartmentId, ViewBag.departmentList as IEnumerable&SelectListItem&)
@Html.ValidationMessageFor(model =& model.DepartmentId)
@*&div class=&editor-label&&
@Html.LabelFor(model =& model.BaseInfo)
&div class=&editor-field&&
@Html.EditorFor(model =& model.BaseInfo)
@Html.ValidationMessageFor(model =& model.BaseInfo)
&input type=&submit& value=&Save& /&
&/fieldset& }
@Html.ActionLink(&Back to List&, &Index&) &/div&&/body&&/html&View Code如果这个时候传给视图的模型是空的,也就是为null值,那么打开edit页面的时候里面的值也相应为空白,然后我通过EF简单的从数据库查到了一条数据,并把其转化为ViewModel传给了视图。代码如下        //根据id 查询要修改的权限var model = OperateContext.Iqgzx_adminBLL.GetListBy(x =& x.Id == id).FirstOrDefault().ToViewModel();//将权限对象 传给视图的model属性return PartialView(model);显示的效果如下:ASP.NET MVC4入门教程(五):从控制器访问数据模型
作者:葡萄城控件技术团队
字体:[ ] 类型:转载 时间:
本文介绍ASP.NET MVC4中在创建控制器的时候,同时使用Entity Framework为模型生成增删改查等方法,方便控制器调用。
在本节中,您将创建一个新的MoviesController类,并在这个Controller类里编写代码来取得电影数据,并使用视图模板将数据展示在浏览器里。
在开始下一步前,先Build一下应用程序(生成应用程序)(确保应用程序编译没有问题)
用鼠标右键单击Controller文件夹,并创建一个新的 MoviesController控制器。当Build成功后,会出现下面的选项。设定以下选项:
· 控制器名称: MoviesController.(这是默认值)。
· 模板: MVC Controller with read/write actions and views, using Entity Framework.
· 模型类:Movie (MvcMovie.Models).
· 数据上下文类: MovieDBContext (MvcMovie.Models).
· 意见:Razor (CSHTML).(默认值)。
单击添加。Visual Studio Express 会创建以下文件和文件夹:
· 项目控制器文件夹中的MoviesController.cs文件。
· 项目视图文件夹下的 Movie文件夹。
· 在新的Views\Movies文件夹中创建Create.cshtml、 Delete.cshtml、 Details.cshtml、 Edit.cshtml和Index.cshtml 文件。
ASP.NET MVC 4 自动创建 CRUD (创建、 读取、 更新和删除) 操作方法,和相关的视图文件(CRUD 自动创建的操作方法和视图文件被称为基础结构文件)。现在您有了可以创建,列表、 编辑和删电影Entity 所有的Web功能了。
运行应用程序,通过将/Movies追加到浏览器地址栏 URL的后面,从而浏览Movies控制器。因为应用程序依赖于默认路由 ( Global.asax文件中的定义),浏览器请求http://localhost:xxxxx/Movies将被路由到Movies控制器默认的Index 操作方法。换句话说,浏览器请求http://localhost:xxxxx/Movies等同于浏览器请求http://localhost:xxxxx/Movies/Index。因为您还没有添加任何内容,所以结果是一个空的电影列表。
点击Create New链接。输入有关电影的一些详细信息,然后单击Create按钮。
单击Create按钮将使得窗体提交至服务器,同时电影信息也会保存到数据库里,然后您会被重定向到URL/Movies,您可以在列表中看到您刚刚创建的新电影。
创建一些更多的电影数据。同时也可以尝试点击编辑、详细信息和删除功能的链接。
看一下生成的代码
打开Controllers\MoviesController.cs文件,并找到生成的Index方法。一本部分电影控制器和Index方法如下所示。
public class MoviesController : Controller
private MovieDBContext db = new MovieDBContext();
// GET: /Movies/
public ActionResult Index()
return View(db.Movies.ToList());
下面是MoviesController类中实例化电影数据库上下文实例,如前面所述。电影数据库上下文实例可用于查询、 编辑和删除的电影。
private MovieDBContext db = new MovieDBContext();
向Movies控制器请求,从而返回Movies电影数据库表中的所有记录,然后将结果传递给Index视图。
强类型模型和 @model 关键字
在本系列之前的教程中,您看到了使用ViewBag对象,从控制器传递数据或对象给视图模板。ViewBag是一个动态的对象,提供了方便的后期绑定方法将信息传递给视图。
ASP.NET MVC 还提供了传递强类型数据或对象到视图模板的能力。这种强类型使得更好的在编译时检查您的代码并在Visual Studio 编辑器中提供更加丰富的智能感知。当创建操作方法和视图时, Visual Studio 中的基础结构机制使用了MoviesController类和视图模板。
在Controllers\MoviesController.cs文件中看一下生成的Details方法。电影控制器里的Details方法如下所示。
public ActionResult Details(int id = 0)
Movie movie = db.Movies.Find(id);
if (movie == null)
return HttpNotFound();
return View(movie);
如果查找到了一个Movie,Movie 模型的实例会传递给Detail视图。看一下Views\Movies\Details.cshtml文件里的内容。
通过引入视图模板文件顶部的@model语句,您可以指定该视图期望的对象类型。当您创建电影控制器时,Visual Studio 会将@model声明自动包含到Details.cshtml文件的顶部:
@model MvcMovie.Models.Movie
此@model声明使得控制器可以将强类型的Model对象传递给View视图, 从而您可以在视图里访问传递过来的强类型电影Model。例如,在Details.cshtml模板中,DisplayNameFor 和 HTML Helper通过强类型的Model对象传递了电影的每个字段。创建和编辑方法还有视图模板都在传递电影的强类型模型对象。
看一下Index.cshtml视图模版和MoviesController.cs中的Index 方法。请注意这些代码是如何在Index操作方法中,创建对象,并调用View方法的。
此代码在控制器中传递Movies列表给视图:
public ActionResult Index()
return View(db.Movies.ToList());
当您创建电影控制器时,Visual Studio Express会自动包含 @model语句到Index.cshtml文件的顶部:
@model IEnumerable&MvcMovie.Models.Movie&
此@model声明使得控制器可以将强类型的电影列表Model对象传递给View视图。例如,在Index.cshtml模板中,在强类型的Model对象上使用foreach语句循环遍历电影列表:
@foreach (var item in Model) {
@Html.DisplayFor(modelItem =& item.Title)
@Html.DisplayFor(modelItem =& item.ReleaseDate)
@Html.DisplayFor(modelItem =& item.Genre)
@Html.DisplayFor(modelItem =& item.Price)
@Html.DisplayFor(modelItem =& item.Rating)
@Html.ActionLink("Edit", "Edit", new { id=item.ID }) |
@Html.ActionLink("Details", "Details", { id=item.ID }) |
@Html.ActionLink("Delete", "Delete", { id=item.ID })
因为Model对象是强类型的 (是IEnumerable&Movie&对象),所以在循环中的每个item对象的类型是Movie类型。好处之一是,这意味着您可以在代码编译时进行检查,同时在代码编辑器中支持更加全面的智能感知:
使用SQL Server LocalDB
Entity Framework Code First代码优先,如果检测到不存在一个数据库连接字符串指向了Movies数据库,会自动的创建数据库。在App_Data文件夹中找一下,您可以验证它已经被创建了。如果您看不到Movies.mdf文件,请在解决方案资源管理器工具栏上,单击显示所有文件按钮,单击刷新按钮,然后展开App_Data文件夹。
双击Movies.mdf打开数据库资源管理器,然后展开表文件夹以查看电影表。
注: 如果没有显示数据库资源管理器,可以从工具菜单中,选择连接到数据库,然后关闭选择数据源对话框。这样将强制打开数据库资源管理器。
注: 如果您使用的 VWD 或 Visual Studio 2010 可能会看到类似下面的错误信息:
· 因为数据库 ' C:\Webs\MVC4\MVCMOVIE\MVCMOVIE\APP_DATA\MOVIES.MDF ' 是 706 版本的,所以无法打开。本服务器支持 655 和更早版本的数据库。无法降级支持。
· "InvalidOperation Exception was unhandled by user code" 所提供的 SqlConnection 没有指定初始数据库。
您需要安装和。并验证在前面所指定的MovieDBContext 连接字符串。
右键单击Movies表并选择显示表数据以查看您所创建的数据。
右键单击Movies表,选择打开表定义查看Entity Framework代码优先所创建表的表结构。
请注意,如何将Movies表的表结构映射到您早些时候所创建的Movie类?Entity Framework 代码优先为您自动创建了基于Movie类的表结构。
当您完成操作后,通过右键单击MovieDBContext ,选择关闭连接关闭该数据库连接。(如果您没有关闭连接,当您下次运行该项目时,可能会出现错误)。
现在,您可以在简单列表页面里,来显示数据库里的数据了。在下一次的教程中,我们会继续看看框架自动生成的其它代码。并添加一个SearchIndex方法和SearchIndex视图,使您可以在数据库中搜索电影了。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
《MVC3_实践教程》.pdf79页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
文档加载中...广告还剩秒
需要金币:218 &&
《MVC3_实践教程》.pdf
你可能关注的文档:
··········
··········
ASP.NETMVC3快速入门-第一节 概述
20:57:18 转载
标签: 分类: ASP.NETMVC3
web应用程序 1.1本教程的学习内容 在本教程中,你将学会如下内容: 如何创建一个ASP.NET MVC的工程。 如何创建ASP.NET MVC的控制器 (controller)与视图 view 。 如何使用Entity Framework code-first范例来创建一个新的数据库。 如何获取和显示数据。 如何编辑数据并且进行数据的有效性验证。 1.2创建工程 如果要创建一个ASP.NET MVC3的工程时,首先运行 (本教程中简称 “Visual Web Developer”),并且在起始页 start
Visual Web Developer是一个集成开发环境,你可以使用它来进行各种应用程序的开发。
在Visual Web Developer的菜单的下面有一个工具条,可以直接点击工具条中的各个工具
按钮来进行各种操作,也可以直接点击菜单中的各个菜单项来进行各种操作,此处我们点击 “文件”菜单中的 “新建项目”菜单项。 图1-1Visual Web Developer 2010 Express中的起始页 1.3创建你的第一个应用程序 你可以使用Visual Basic或Visual C#作为开发语言来创建应用程序。在本教程中,
选择C#来作为开发语言。点击 “新建项目”菜单项后,在打开的 “新建项目”对话框中,
双击左边的 “Visual C#”使其成为展开状态,然后点击 “Web”,点击右边的 “ASP.NET MVC
3 Web应用程序”,然后在下方的名称文本框中填入应用程序的名称,在本教程中命名为 “MvcMovie”,然后点击确定按钮。 图1-2在新建项目对话框中选择ASP.NET MVC3应用程序并为应用程序命名 在接下来打开的 “新ASP.NET MVC 3项目”对话框中,点击选中 “Internet应用程
序”,在 “视图引擎”下拉框中保持默认的 “Razor”选项不作修改(Razor视图是ASP.NET
MVC3种新增的一种十分重要的视图类型,使用它
正在加载中,请稍后...}

我要回帖

更多关于 创建spring mvc项目 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信