工欲善其事,必先利其器——asp.net MVC
工欲善其事,必先利其器——asp.net MVC
Orchard中用到了许多开源的技术,asp.net MVC是其中之一。要了解Orchard,需要熟练掌握asp.net MVC。
以前对web的开发,多采用webform的形式,mvc用的不多,这里先来学习一下mvc的知识。
首先是路由,普通的查询字符串参数变成了路由参数。Request.QueryString变为了Page.RouteData,另外标记代码可以使用<%$ RouteValue: %>和<%$ RouteUrl: %>的形式。路由的匹配和路由顺序相关,路由有许多内置的类,每个路由类有多个重载的构造函数,可定义路由的默认值、约束、传递数据标记等。还可以通过<asp:routeparameter>的方式使用路由参数。
MVC是一种编程方式,将代码分为3部分:模型、视图、控制器。
VS2013中有asp.net mvc的模板,创建一个mvc项目非常的简单。创建后,会有一些自动创建的目录和文件。App_start/RouteConfig.cs中有定义的路由规则。
首先添加一个控制器,可以选择空的模板;
然后添加一个对应视图;可修改布局文件修改默认的布局。
控制器传递数据可以使用ViewBag动态对象来进行。
可以使用查询字符串,名字对应于控制器中的方法参数。
添加模型,使用Entity Framework;
新建派生自DbContext的类来管理模型。
连接字符串(connection string)的名称必须匹配 DbContext 类的名称。
还可以用带视图的模板添加一个新的模型的控制器;系统会自动重建增删改查的文件。
通过@model可以使用强类型模型。
Edit的重载使用
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include="ID,Title,ReleaseDate,Genre,Price")] Movie movie)
如果需要添加搜索项,可以通过修改控制器和视图。
数据库的迁移Migration,使用code first方法进行数据库的更改;NuGet程序包管理器控制台的使用;
模型应用验证规则后,可自动更改到数据库和视图。
还有一些其他的htmlhelper的应用,Token的使用等,需要慢慢使用来熟练。
MVC的了解先到这里,让我们的探索继续……