MVC的简单初步学习(2)
今天似乎一切是正常的,我们的课依旧在进行着,但是恍惚脑海中并没有那样的平静,不知道在想些什么?而且今天是学习MVC的初步开始,我应该认真地学习才是正确的啊。但是我并不糊涂,今天是周一,也就是刚开始上课的第二天,因为我意识到我接下来的课还是重中之重那,但是复习也是很有必要的,面对那些三个多月学习完的课程,我能说现在的我已经找不到方向?
其实已经想过,前几个月无论学习多久关键的时刻还是在最后的练习项目时期,这是一个提高急速的时期,也是在这个时间一点也不能懈怠,让我出乎意料的是现在的我矛盾啦,不知道友友们在这个关键的时刻是怎么做的?我希望友友帮我想一下。
思想想的多,但是还是要安静下来总结今天学习的课程,纵然万分焦虑不如犹得一丝清净,先看眼前:
一.MVC小练习
首先我们创建好MVC空项目,然后开始自己创建控制器、视图和model,在这里简单的完成一个小实例。
(1).Index.cshtml页面
(2).join.cshtml页面
(3).Thanks.cshtml页面
(4).user.cs文件
(5).HomeController.cs文件
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
/// <summary>
/// 以get的方式接收
/// </summary>
/// <returns></returns>
public ActionResult join()
{
return View();
}
/// <summary>
/// 以form的方式接收
/// </summary>
/// <param name="user">实体类model</param>
/// <returns></returns>
[HttpPost]
public ActionResult join(User user)
{
if (ModelState.IsValid) //调制解调器的状态:有效
{
return View("Thanks", user); //转到视图Thanks
}
else
{
return View();
}
}
}
上面就是实现一个小程序的全部过程,其实上面涉及到的知识点还是有那么几个的:
<1>.在html页面想要使用model中的属性传参就在建立view时间建立强类型的view;
<2>.在html中的参数绑定变量和C#语言的几个方法;
<3>非空验证在这里需要注意的几个知识点.
一是由上面的user类可知道我们需要在属性前面添加[Required]即可;二是我们需要在html中调用Html.ValidationSummary();即可;三就是我们需要判断一下是否有效,即如上所示的ModelState.IsValid即可。
二.初步认识ActionResult的几个子类
public class HomeController : Controller
{
/// <summary>
/// 当返回的view和Controller的方法名不同,需要指出view名字,寻找页面
/// </summary>
/// <returns>ActionResult的视图</returns>
public ActionResult Index()
{
return View("Index1");
}
/// <summary>
/// ViewResult是ActionResult的子类,所以返回的视图寻找页面
/// </summary>
/// <returns></returns>
public ViewResult Index()
{
return View("Index1");//同上
}
/// <summary>
/// 重定向view页面,但是只寻找Controller中的Index1方法,并不寻找页面
/// </summary>
/// <returns></returns>
public RedirectResult Index()
{
return RedirectPermanent("Index1");
}
/// <summary>
/// 路由重定向,仅仅寻找方法
/// </summary>
/// <returns></returns>
public RedirectToRouteResult Index()
{
//return RedirectToRoute(new { controller = "Home", action = "Index1" });
return RedirectToAction("Index1");
}
/// <summary>
/// 返回夜歌Json串
/// </summary>
/// <returns></returns>
public JsonResult JsonReoult()
{
return Json(new { msg = "", age = }, JsonRequestBehavior.AllowGet);
}
}
上面的几个类是我们在需要返回一个怎样的页面时间调用那个方法即可。
三.路由设置
public static void RegisterRoutes(RouteCollection routes)
{
//传参的方式有两种,controller指的是控制器的名字,action返回视图名字
routes.MapRoute("", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id =UrlParameter.Optional });
routes.MapRoute(
name: "MyRoute",
url: "{controller}/{action}",
defaults: new { action = "Index" }
);
}
在这里路由设置其实就是我们在url地址栏中输入的地址,这里一般的为/Home/Index,但是我们也可以根据实际情况设置即可。
今天就写到这里啦,似乎MVC的知识点很多的,我会继续努力的,给自己信心,加油!
最新文章
- [LeetCode] Sum of Two Integers 两数之和
- vijos P1448 校门外的树
- mysql前缀索引(字符串截取部分作为索引), 以及索引选择指引
- apache性能测试工具ab使用详解
- Ubuntu14.04下Unity桌面托盘图标显示问题
- Azure Site Recovery:我们对于保障您的数据安全的承诺
- 【Android Developers Training】 63. 定义形状
- 解决浏览器兼容ES6特性
- jacascript 函数声明、函数表达式与声明提升(hoisting机制)
- Android探究之ANR
- inotify+rsync文件实时同步报错:usr/local/bin/inotifywait: error while loading shared libraries: libinotifytools.so.0:
- POJ 2398 Toy Storage(叉积+二分)
- springboot的maven配置问题
- Linux内核剖析(五)Linux内核的构建过程
- JavaScript 中禁止用户右键菜单,复制,选取,Ctrl,Alt,Shift. 获取宽高,清除浮动
- Oracle用户权限及死锁
- Linked List Cycle leetcode II java (寻找链表环的入口)
- Web安全相关(五):SQL注入(SQL Injection)
- hibernate中一对一映射
- ORA-08002: sequence TESTTABLE1_ID_SEQ.CURRVAL is not yet defined in this session (未完全解决)
热门文章
- altium designer中如何添加logo
- python opencv 学习笔记
- Axiom3D:数据绑定基本流程
- (笔记)Linux Root下的.gvfs出现异常解决办法
- Python中的高级turtle(海龟)作图
- This kernel requires an x86-64 CPU, but only detected an i686 CPU.
- C# webbrowser判断页面是否加载完毕
- Windows 2008禁止IE增强安全配置修改安全设置方法
- 通过tarball形式安装HBASE Cluster(CDH5.0.2)——Hadoop NameNode HA 切换引起的Hbase错误,以及Hbase如何基于NameNode的HA进行配置
- vuex在页面中以对象展开运算符形式引入报错解决