zoukankan      html  css  js  c++  java
  • MVC入门

    第一章:

    M: model  通常模型对象负责在数据库中存取数据。

    V:view    通常视图是依据模型数据创建的    应用程序中处理数据显示的部分

    C:controller    通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据

    @符号:Razor服务器的代码块的开始符号   类似于jquery的“$”

    第二章

    MVC传值:

    1.从控制器方法到视图界面有四种方式:  C=>V

    (1)Viewdata传值

    格式为:

    C(控制器中):Viewdata["key"]="viewdata" 。
    V(视图中取值):Viewdata["key"]

    (2)Viewbag传值

    格式为:

    C(控制器中):Viewbag.key="viewbag" ,V(视图中取值):viewbag.key

    (3)Tempdata传值

    格式为:

    C(控制器中):Tempdata["key"]="tempdata" , V(视图中取值):Tempdata["key"]

    (4)Mode(???)

    2.viewdata与viewbag区别:

    (1)对于普通类型传值方式一样

    (2)对于强类型(对象类)viewdata需要强制转换 ,而viewbag不需要转换   : 

        第一种方式: 某对象 s=(命名空间+某对象类)(viewdata["对象变量"])     

        第二种方式:  某对象 s=  viewdata["对象变量"] as  (命名空间+某对象类)

    3. Viewdata与Tempdata的区别:

    (1)viewdata 传值时不能跨方法,否则值会丢失,只能是在本方法到本视图 。

    (2)tempdata 可以跨方法传值(取值)值不会丢失。

    4.C<=>V

    (1)强类型传值  通过对象传值(model)

    C中:返回一个实例化对象(变量),

    V中:需要一个接受从C中传来的,与之对应的对象变量(一般为model)   (有可能是C中返回的是集合,则V中需要用集合接受:格式为 @model  List<命名空间.类名>)

    (2)request传值   request 获取表单的值   request值存在request对象中

    格式为:

    View(视图中):

    <form action="访问路径" method="请求方式">

        <input type="text"name="1"/>

        <input type="text"name="2"/>

       <input type="submit"name="提交"/>

    </form>

    Controller(控制器中):  Request接收取值 , 值都在Request中

      string  first=Request["1"]  name值与属性名称值一样

       string  second=Request["2" ] name 值  

    (3)对象传值   要有对象首先得必须有类的存在

    格式为:  public actionResult   methon( 类名  变量(m))

    {

    m.属性名       //得到界面传来的值

    }

    特别强调:通过对象传值,需保证form表单中的name与类中的属性名称一样

    (4)formCollection传值

    格式为:

    格式为:  public actionResult   methon( formCollection   变量(colletion))

    {

    colletion["name值"]    //得到界面传来的值

    }

    特别说明:

    通过formcollection传值,取值方式:数组+下标(name值)
    (5)特别:通过参数获取表单提交的值   格式为在  public actionResult   methon(所需的参数类型   参数)) name 值作为参数
    {
    //操作参数即可
    }
     
    代码示例:
    model: 数据提供
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    namespace mvc传值.Models
    {
        public class User
        {
            public string UserName { get; set; }
            public string Password { get; set; }
        }
    }

    视图: 数据展示

    <!DOCTYPE html>
    
    <html>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>Index</title>
    </head>
    <body>
        <div> 
            <form action="/FormTIjioa/OpenOut4"method="post">
                用户名:<input type="text" name="userName"/><br />
                密码:<input type="Password"name="Password"/><br />
                <input type="submit"value="提交"/>
            </form>
        </div>
    </body>
    </html>
    控制器: 从数据提供层取出数据返回给展示层
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using mvc传值.Models;
    namespace mvc传值.Controllers
    {
        public class FormTIjioaController : Controller
        {
            // GET: FormTIjioa
            public ActionResult Index()
            {
                return View();
            }
            /// <summary>
            /// 获取表单的值 (1) request方式传值获取值
            /// </summary>
            /// <returns></returns>
            public string OpenOut1()
            {
                string userNam = Request["userName"];
                string pwdd = Request["pwd"];
                return "用户名:" + userNam + "
    " + "密码:" + pwdd;
            }
            /// <summary>
            /// 使用     (2)参数传值获取值
            /// </summary>
            /// <param name="userName"></param>
            /// <param name="pwd"></param>
            /// <returns></returns>
            public string OpenOUT2(string userName, string pwd)
            {
                return "用户名:" + userName + "
    " + "密码:" + pwd;
            }
            /// <summary>
            ///        (3)对象传值
            ///             表单的name值必须和对应的属性名称一致
            /// </summary>  
            /// <param name="user"></param>
            /// <returns></returns>
            public string OpenOUt3(User user)
            {
                return "用户名:" + user.UserName + "
    " + "密码:" + user.Password;
            }
            /// <summary>
            /// 通过     (4)FormCollection 传值
            /// </summary>
            /// <param name="forclo"></param>
            /// <returns></returns>
            public string OpenOut4(FormCollection forclo)
            {
                return "用户名:" + forclo["userName"] + "
    " + "密码:" + forclo["Password"];
            }
    
        }
    }

         在浏览器中的样子:

    输入结果为:

     
    第三章:
    小知识:数据库的表映射为代码中的集合。表中的一条记录映射为一个对象

  • 相关阅读:
    Android TP出现小圆点解决方法
    Android的SAFE MODE(安全模式)
    Linux TCP透传到OneNET
    C读取BMP数据
    OLED显示BMP数据
    电脑出现DNS错误无法上网怎么办
    办公室如果没有网络怎么办呢?
    微信扫一扫获取地理位置
    win10系统程序与功能查找,卸载程序
    手把手学习数据库
  • 原文地址:https://www.cnblogs.com/wfaceboss/p/6417978.html
Copyright © 2011-2022 走看看