• MVC认识


    1.ASP.NET两种开发模式的简单比较(WebForm和MVC)

    (1)WebForm开发模式

    当用户输入网址https://i.cnblogs.com/EditPosts.aspx?opt=1进行请求服务器的时候,服务器首先会判断是否存在这个页面,然后就会找到相应的页面,处理相应的代码,也就是

    执行(.cs文件),然后通过这个文件程序访问数据库,将用户需要的内容读取出来,然后返回到用户访问的页面。

    所以WebForm 的开发模式就是通过URL访问服务器上对应的(ASPX)文件,并将codeBehind代码的处理结果返回给用户的过程。

    (2)MVC开发模式

    当用户输入网址https://i.cnblogs.com/home/Index,这个网址并不是映射相应的文件处理程序,而是将其交个Controller对请求的逻辑进行处理,找到Controller下的相应的行为,然后返回对应View给客户端。

    对于WebForm开发模式,微软提供了大量的服务端控件,可以快速上上手,开发效率快,但是由于封装的比较厉害,很多底层的原理不是很明了,对于UI层来说aspx和aspx.cs这两个文件一个是页面展示,一个后台逻辑,他们是父子关系,所以具有较强的耦合性

    MVC:M:model V:View  C:controller,通常认为MVC只是UI层的逻辑分块,此时的Model也就是VIewModel,但是通常在架构的使用的时候,将这个Model同时也用在其他例如DAL和BLL层,MVC将控制器逻辑和页面的展示View进行了解耦,降低 耦合性

    2.MVC的简单的使用

    前台:(Register对应的View)

    <form method="Post" action="home/AddUser">

     用户名:<input type ="text" name=“userName”>

      密码:<input type="password" name ="pwd">

    <input type="submit" value="添加">

    </form>

    后台HomeController

    public ActionResult Register

    {

      reutrn View();

    }

    public ActionResult AddUser()

    {

      string name =Request["userName"];

      ......

     int result= dbContext.SaveChanged();

    if(result>0)

    {

     return Content("t添加成功");

    }

    else

    {

      return Content("添加失败");

    }

    }

    对于控制器中的行为获取表单中的数值,MVC提供了很多遍历的方式,就是可以将AddUser改造为

    public ActionResult AddUser(string userName,string pwd)

    {

      此时userName和pwd变量就可以直接使用,MVC会进行处理,也就是将form表单的数据与参数变量对应

          需要注意:参数变量的名称一定要和表单中的名称一致

    }

    public ActionResult AddUser(User user)

    {

      此时user会和MVC中的Model进行对应,所以要求表单中数据的命名一定要和Model中定义的变量名称是一致的。

    }

    从上面的两种方式可以大大简化了开发人员的操作,同时可以发现在MVC中存在着许许多多的约束,这些约束标准,代替了频繁的配置,只有按照约束,MVC才可以更加的得心应手的使用,方便开发人员开发。

    3.ActionResult

    这是一个父类型,它的常用的子类型有:ViewResult(return View())、ContentResult( return Content("ss"))、RedirectResult(return Redirect("url")或者return RedirectToAction(控制器,行为))等

    备注1:本文参考了博客http://www.cnblogs.com/edisonchou/p/3911558.html

    备注2:本人只是刚开始学MVC,欢迎批评指正

  • 相关阅读:
    Linux常用命令
    C# 报表设计器 (winform 设计端)开发与实现生成网页的HTML报表
    完成复杂表头列表
    流程设计--页面介绍
    流程设计--设计理念
    报表设计--坐标实例-位移坐标
    Spring MVC 工作原理--自我理解
    java ==、equals和hashCode的区别和联系
    java 自动装箱和拆箱
    java maven笔记
  • 原文地址:https://www.cnblogs.com/XZhao/p/6574515.html
Copyright © 2020-2023  润新知