昨天才开通了博客园的账号,在博客园上逛了一圈,收获甚多,许多学习资料都可以在这个平台共享。今天正式开始自学MVC,开始万里长征的第一步,争取每天都有所进步。下面是我学习MVC的一些笔记,想让自己对MVC有个简单清晰地认识,也希望对于没有接触过MVC框架的园友有所帮助吧!(以下总结仅为个人的学习整理)
一.准备工作。
1.安装VS2008.
2.下载MVC安装包。(如果之前下载安装过不同版本的安装包,需要先卸载再安装。)
二.打开VS2008创建MVC项目。
1.默认应用工程的作用。
2.访问路径:http://IP地址:端口号/ControllerName/ActionName
注意:修改了cs类型的文件要重新生成。
三.MVC运行原理
客户端向Controller发起请求,调用Controller的路径函数。再将要显示的数据放在Views中,再在页面呈现。
而要与数据库打交道的时候才使用到Models,运用ORM(对象关系模型)很多情况在使用LinQ...。
四.实现Controller与Action之间的传值。
对象一:ViewDate
1)简单的字符串:
Controller:
View:
2)简单类型:
Controller:
Views:
3)简单对象。
赋值:ViewDate["Models"]=users;
取值:<% User user=ViewDate["Models"] as Users; %>或者 赋值用return View(users); 取值:页面引用该类型,再ViewDate.Models.属性值.
对象二:TempDate(与ViewDate不同的是,可以跨Action传值一次。用法大致与ViewDate一致)
常用之处:当一个Action中需要将Error抛出到另一个Action显示时。
五.重定向
1.Action中的的重定向。
1).在同一个Controller中:return RedirectToAction("ActionName");
2).不在同一个Controller中:return RedirectToAction("ActionName","ControllerName");
2.Global.asax文件中定义映射访问路径的规则。
六.Filter过滤器(在Action或者return View()之前/之后执行)
1.作用:
2.创建过滤器:
1)新建cs文件,继承ActionFilterAtrribute类.
2)控制Action运行之前:重写OnActionExecuting。一般用户是否登录,只有登录才能进入Action.
控制Action运行之后: 重写OnActionExecuted.
控制return View()之前:OnResultExeccuting.
控制return View()之前:OnResultExeccuted.
3)使用Filter:如果是整个Controller中得Action都需使用,则在Controller上填上属性[Filter文件路径];如果只有某一个Action需要,则在该Action上添加Filter文件路径。
七.Helper(MVC不推荐使用服务器端控件,所以需要使用Helper显示数据)
1.HtmlHelper
1)超链接:<%=Html.ActionLink("连接显示文字","ActionName","ControllerName")%>
2)文本框,单选按钮,按钮...:<%=Html.TextBox("ID")%> <%=Html.SubmitButton("id或name","显示文字")%> <%=Html.Password("ID")%>
3)输出时编码:<%=Html.Encode("")%>
4)单选框:
<% foreach(string r in Html.RadioButtonList("name属性",数据源)) {%>
<%=s%>
<%}%>
5)复选框:
<% Html.CheckBox("name属性",值) %>复选
注意:Action中接收单选框或者复选框的值一定要保证Name与参数名一致。如果需要传递的参数有很多个,可以采用数组的方式接收。
2.UrlHelper
1)<%=Url.Action("ActionName","ControllerName",
new {word="传值"},new {@class="链接中引用的方法"} //匿名函数
) %>
2)<%=Url.Content("//显示文件的路径")%>
八.QueryString传值。(略)
九.表单生成和Post传值.
<% using(Html.Form("ControllerName","ActionName",FormMethod.Post)) {%>
//表单内容...
<% }%>
Action获取表单: Request.Form["表单元素ID"]或者直接在Action方法中添加参数。(注意:参数名要和表单元素ID一致.)
十.UpdateModel(Model,Request.Form.AllKeys);
不仅可以用户Post方式提交,也可以用于Get方式提交。
相对于Request.QueryString/Request.Form[".."]更具有智能性。
参考的视频教程地址:http://www.cnblogs.com/chsword/archive/2008/09/29/aspnetmvc_video.html