今天似乎一切是正常的,我们的课依旧在进行着,但是恍惚脑海中并没有那样的平静,不知道在想些什么?而且今天是学习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的知识点很多的,我会继续努力的,给自己信心,加油!

MVC的简单初步学习(2)的更多相关文章

  1. Spring MVC之简单入门

    一.Spring MVC简介: 1.什么是MVC 模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的设计模式.它主要通过分离模型(Model).视图(View)及控制器(Contr ...

  2. 老周的ABP框架系列教程 -》 一、框架理论初步学习

    老周的ABP框架系列教程 -- 一.框架理论初步学习   1. ABP框架的来源与作用简介 1.1  简介 1.1.1       ABP框架全称为"ASP.NET Boilerplate ...

  3. 初步学习python

    自计算机诞生以来,也伴随着计算机语言的诞生,现在,全世界的编程语言有600多种,但流行的编程语言也就20多种. Java和C一直占据着前两名.但是近年来伴随着人工智能的发展,Python发展迅猛,以其 ...

  4. 语法分析器初步学习——LISP语法分析

    语法分析器初步学习——LISP语法分析 本文参考自vczh的<如何手写语法分析器>. LISP的表达式是按照前缀的形式写的,比如(1+2)*(3+4)在LISP中会写成(*(+ 1 2)( ...

  5. 状态保持以及AJAX的初步学习

    嘿嘿,今天学习的有点迷茫哦,主要学习把验证码使用在登录页面时间的一些逻辑,学习这个时间并没有那么的迷惑哦,可是自己写程序时间倒是有点反应迟钝,不过还好总是在最后搞清楚啦,另外就是一步一步的学习是接近项 ...

  6. LinQ的初步学习与总结

    嘿嘿,说起来ORM和LinQ,就感觉离我好遥远的,在学校是没有学习的,所以总感觉学习了LinQ就是大神,现在嘛,终于也体会一点,感觉LinQ只是初步学习,没有太难,当然以后使用在项目中就没有这样的简单 ...

  7. Android NDK开发及OpenCV初步学习笔记

    https://www.jianshu.com/p/c29bb20908da Android NDK开发及OpenCV初步学习笔记 Super_圣代 关注 2017.08.19 00:55* 字数 6 ...

  8. VirtualBox上LInux命令初步学习

    大二的寒假已经接近了尾声,寒假期间我初步使用了VirtualBox虚拟机软件,并安装了ubuntu的操作系统进行了Linux语言的学习.然而寒假期间的学习没有太多的计划,纯粹是为了完成作业而应付性的学 ...

  9. React初步学习-利用React构建个人博客

    React初步学习-利用React构建个人博客 用React和Webpack写了一个很简单的个人博客,主要是想要熟悉一下react中各种基本基本属性及方法的使用.在构建过程中碰到不少问题,通过阅读官方 ...

随机推荐

  1. SAP HR模块的基础数据表和增强配置

    信息类型是SAP HR模块数据单元,用于对人员数据的记录和维护,是HR的基础.信息类型按照其创建方式的不同可以分为:人事信息类型.组织信息类型.信息类型数据的维护主要在事物码PA30.PA40.po1 ...

  2. e803. 获得和设置JProgressBar的值

    // To create a progress bar, see e801 创建一个JProgressBar组件 // Get the current value int value = progre ...

  3. ubuntu 14.04安装 DevStack的脚本配置文件——localrc

    本文ubuntu 14.04安装 DevStack的脚本配置文件——localrc,本文件名已经逐渐被取代,但是出于后向兼容性,使用该文件仍然可以为stack.sh安装脚本指定安装DevStack时的 ...

  4. R语言绘制带errorbar 的柱状图

    代码示例: data <- data.frame(mean = c(10, 15), sd = c(12, 17)) rownames(data) <- c("case" ...

  5. 令人惊叹的HTML5动画及源码分析下载

    HTML5非常酷,利用HTML5制作动画简直让我们忘记了这世界上还有flash的存在.今天我们要分享的一些HTML5动画都还不错,有些动画设计还是挺别出心裁的.另外,每一款HTML5动画都提供源代码下 ...

  6. HTML5 3D爱心动画及其制作过程

    之前有看到过很多基于HTML5或者CSS3制作的爱心动画,不过基本上都是2D平面的,今天在国外的网站上看到一个基于HTML5 3D的爱心动画,对于HTML5爱好者来说,不免兴奋了一把.下面将分享一下这 ...

  7. Thinkphp5笔记六:公共模块common的使用

    common模块属于公共模块,Thinkphp框架,默认就能调用. 实际用处:任何模块都可能用到的模型.控制.事件提取出来放到公共模块下. 一.公共事件  apps\common\common.php ...

  8. js数组push方法使用注意

    js 数组的push方法,想必大家都知道是向数组末尾添加元素,但是有一个很关键的点需注意: 引自MDN 返回值 当调用该方法时,新的 length 属性值将被返回. var sports = [&qu ...

  9. CSS3与动画有关的属性transition、animation、transform对比

    最近应公司需求,需要用css3做动画,终于把以前一直傻傻分不清楚的三个属性理解了. 索性在这里进行一个简单的对比,加深自己的记忆. 浏览器兼容性 CSS3 transform 属性 Internet ...

  10. C语言之Bit-wise Operation和Logical Operation

    首先第一点:十六进制位运算和逻辑运算 都是先转化二进制,后输出结果(十六进制,二或十)Bit-Wise Operations (位运算)包括:& 按位与 | 按位或 ^ 按位异或 ~ 取反 & ...