• MVC学习笔记之数据传递


    MVC中的传递数据方法

    1、使用ViewData。新建一个MvcApplication1,然后在HomoController中的Index动作方法中写一个 ViewData,

    1 ViewData["Message"="好好学习,天天向上"

     然后在Index视图页写上:

    1 <%= Html.Encode(ViewData["Message"]) %>

     这样就把控制器中的数据传到了视图页上。当然ViewData也可以传递List,在Index动作方法中写一个List,

    2             List<string> str = new List<string>();
    3             str.Add("cnblogs");
    4             str.Add("博客园");
    5             str.Add("MVC");
    6 
    7             ViewData["Message"= str;

     然后Index视图页也要改一下,

    1     <ul>
    2         <%foreach (string s in ViewData["Message"as List<string>)
    3           { %>
    4         <li>
    5             <%=%></li>
    6         <%%>
    7     </ul>

     这样就把List从控制器传到了视图。

    2、 用TempData楚地数据,TempData的用法和ViewData几乎完全一样。同样是在控制器的动作方法中写一个TempData,

    1             TempData["Message"= "好好学习,天天向上";

    然后同样是在视图中写

    1     <%=Html.Encode(TempData["Message"]) %>

    就OK啦。需注意的是ViewData和TempData是两个不同的数据类型,ViewData只能在一个动作方法中设置,在相关的视图中读取,只对当前的试图页面有效,而TempData可以在多个动作方法中设置、读取。 

     

    表单数据绑定

    MVC可以用Request.Form或者FormCollection 读取表单数据,具体方法如下:首先要在视图页写一个BeginForm的扩展方法,可以写成

    <%=Html. BeginForm("Register","Home")%>,其中的第一个参数表示动作方法名,第二个是控制器名,然后还要写一个FormEnd:<%Html.EndForm();%>。还有一种写法是<%using (Html.BeginForm("Register","Home"))%>,然后写几个TextBox,

        <div>
          用户名:
    <%=Html.TextBox("txtName"%><br />
          邮箱:
    <%=Html.TextBox("txtEmail"%>
        
    </div>

    接下来在控制器的动作方法中用Request.Form获取:

                string Name=Request.Form["txtName"];
                
    string Email=Request.Form["txtEmail"];

                ViewData[
    "msg"= "用户名:" + Name + "邮箱:" + Email;

     同时也可以用FormCollection获取,用FormCollection获取要在动作方法中传入一个FormCollection类型的参数,

    代码
            public ActionResult Practise(FormCollection myForm)
            {
                
    string Name=myForm["txtName"];
                
    string Email = myForm["txtEmail"];

                ViewData[
    "msg"= "用户名:" + Name + "邮箱:" + Email;
                
    return View();
            }

     同样可以获取到表单数据对象。

  • 相关阅读:
    进程间通信的方式——信号、管道、消息队列、共享内存
    exit()与_exit()的区别(转)
    [Google Codejam] Round 1A 2016
    使用shell脚本自定义实现选择登录ssh
    PHP的反射机制【转载】
    PHP set_error_handler()函数的使用【转载】
    PHP错误异常处理详解【转载】
    php的memcache和memcached扩展区别【转载】
    .htaccess重写URL讲解
    PHP数据库扩展mysqli的函数试题
  • 原文地址:https://www.cnblogs.com/ldm1989/p/1851656.html
Copyright © 2020-2023  润新知