MVC3.0原理学*及总结
2011-12-15 11:43 追梦网络 阅读(1059) 评论(1) 编辑 收藏 举报
之前一直是用WebForm做的开发,现在学*MVC,感觉还是WebForm简单啊。直接拖控件双击写代码。不过MVC就不用控件了,我想更能够体现出一个人的水平。感觉自己现在就是菜鸟一个。不想当菜鸟的学一下MVC吧,还是有用的。
MVC类似于java里面的Struts框架。分为M(model)模型 、V(view)视图、C(control)控制,以前以为MVC就是所谓的三层架构模式,其实不然,他们是不同的开发模式。MVC开发的Web应用程序,在浏览器里没有.html或.aspx等结尾的文件形式,它是通过路由原理实现的。这样有利于收索引擎的收录,就不用做静态化或伪静态了。
路由原理的代码在Global.asax中。
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); //关键代码
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
数据库操作用的是Entity Framework,所以必须引入这个类库。
在Controllers里面所写的方法对应这浏览器里的后缀。例如下面的方法,对应Http:locahost/***/Logon/
public ActionResult Logon()
{
return View(new User());
}
[HttpPost]
public ActionResult Logon(string UserName, string Password, string ReturnUrl)
{
if (ModelState.IsValid)
{
if (myMembership.UserLogon(UserName,Password))
{
return RedirectToAction("Index", "Home");
}
else
{
ModelState.AddModelError("UserName", "用户名或密码错误");
return View();
}
}
else
{
return View();
}
}
在实际项目中,我们一般还是加了一层用于数据库的访问。
/// <summary>
/// 数据库实体模型
/// </summary>
public class PetsStoreEntities:DbContext
{
/// <summary>
/// 角色实体集
/// </summary>
public DbSet<Role> Roles { get; set; }
}
public class RoleRepository
{
private PetsStoreEntities petsStoreDB = new PetsStoreEntities(); //新建实体
/// <summary>
/// 获取所有的角色
/// </summary>
/// <returns></returns>
public List<Role> Roles()
{
return petsStoreDB.Roles.OrderByDescending(r => r.ID).ToList();
}
/// <summary>
/// 根据ID获取角色
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public Role GetByID(int id)
{
return petsStoreDB.Roles.Find(id);
}
}
View层用@符号代表变量,如@html.TextBoxFor()就是一个文本框。
上班的时候写的,感觉工作太无聊了。都上班一个半月了,还没有开始做一个真正的项目,哎。全是自己在学*,感觉没有机会练手,水平提不高啊。看别人的代码,看了过一段时间又忘了,很悲剧,所以我决定还是用博客记录学*的东西,边学边记,以后还可以温*。最*闲的无聊,在猪八戒网上接了一个抽奖系统,做的过程中还是遇到了很多问题。不过边做也边学*了,还要感谢破狼师兄啊,给了我很多指点。这个项目快完工了。
作者:追梦网络
出处:http://www.cnblogs.com/dream844/
本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库