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 = "123", age = 18 }, 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的知识点很多的,我会继续努力的,给自己信心,加油!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。