今天似乎一切是正常的,我们的课依旧在进行着,但是恍惚脑海中并没有那样的平静,不知道在想些什么?而且今天是学习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. 【CUDA学习】__syncthreads的理解

    __syncthreads()是cuda的内建函数,用于块内线程通信. __syncthreads() is you garden variety thread barrier. Any thread ...

  2. MyGUI 解析

    MyGUI源码还是比较简单的,我们在这里只是简单分析相应控件如何生成,如何渲染. 我们分成三个部分来说明,分别是资源类型,控件生成,控件渲染. 资源类型: ResourceSkin:用于记录各个控件状 ...

  3. SAP Process Integration - High Level ERP/Integration Process --- Cargill Process Concept Design

    Customer Industry: Commercial off-the-shelf (COTS) application ,, Food Ingredients or Agricultural S ...

  4. java-selenium下载百度图片

    package download; import java.io.DataInputStream; import java.io.File; import java.io.FileOutputStre ...

  5. e858. 将键盘键和事件绑定

    This example creates a number of keystrokes and adds them to the input map of a component. When a ke ...

  6. R语言数据框小技巧

    当我们想要把数据框的行或者列按照指定的顺序排列时,可以通过行名称或者列名称快速排列 data <- data.frame(matrix(1:9, ncol=3)) rownames(data) ...

  7. oracle 11g RAC 在Windows 7下安装

    oracle 11g RAC 在Windows 7下安装 完全要参考RAC11gR2OnWindows.pdf 难点总是在Grid Infrastructure 而安装Grid Infrastruct ...

  8. linux内置软件安装命令

    yum -y install epel-release

  9. IntelliJ IDEA 终极破解

    1. 下载破解补丁(JetbrainsCrack-2.6.10-release-enc.jar): http://idea.lanyus.com/jar/JetbrainsCrack-2.6.10-r ...

  10. 【Web API系列教程】3.3 — 实战:处理数据(建立数据库)

    前言 在本部分中,你将在EF上使用Code First Migration来用測试数据建立数据库. 在Tools文件夹下选择Library Package Manager,然后选择Package Ma ...