前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MVC入门

MVC入门

作者头像
wfaceboss
发布2019-04-08 11:32:53
8290
发布2019-04-08 11:32:53
举报
文章被收录于专栏:wfacebosswfaceboss

第一章:

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: 数据提供

代码语言:javascript
复制
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; }
    }
}

视图: 数据展示

代码语言:javascript
复制
<!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>

控制器: 从数据提供层取出数据返回给展示层

代码语言:javascript
复制
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 + "\n" + "密码:" + pwdd;
        }
        /// <summary>
        /// 使用     (2)参数传值获取值
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="pwd"></param>
        /// <returns></returns>
        public string OpenOUT2(string userName, string pwd)
        {
            return "用户名:" + userName + "\n" + "密码:" + pwd;
        }
        /// <summary>
        ///        (3)对象传值
        ///             表单的name值必须和对应的属性名称一致
        /// </summary>  
        /// <param name="user"></param>
        /// <returns></returns>
        public string OpenOUt3(User user)
        {
            return "用户名:" + user.UserName + "\n" + "密码:" + user.Password;
        }
        /// <summary>
        /// 通过     (4)FormCollection 传值
        /// </summary>
        /// <param name="forclo"></param>
        /// <returns></returns>
        public string OpenOut4(FormCollection forclo)
        {
            return "用户名:" + forclo["userName"] + "\n" + "密码:" + forclo["Password"];
        }

    }
}

     在浏览器中的样子:

输入结果为:

第三章:

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-02-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档