MVC笔记一表单应用

构件Form表单

 

  1.Html.BeginForm()

      该方法用于构建一个From表单的开始,他的构造方法为:

      Html.BeginForm("ActionName","ControllerName",FormMethod.method)

      一般构建一个表单结构如下

     <% using(Html.BeginForm ("index","home",FormMethod.Post)){ %> 

      。。。。。。

     <%} %>

      他将在客户端产生一个类似<form action="/account/login" method="post"></form>标签

   

    2.现在开始创建一个表单实例,首先在Index.aspx中构建一个表单

  <% using(Html.BeginForm ("index","home",FormMethod.Post)){ %>  
 帐号:<%=Html .TextBox ("username") %>
 <br/>
 密码:<%=Html .Password ("password") %>
 <br />
 <input type="submit" value="登录" />
 <%} %>

    3.在对应得控制器HomeController.cs中写入下面代码,传递出一个ViewData[]字典:

public ActionResult Index()
        {
            string struser = Request.Form["username"];
            string strpass = Request.Form["password"];
            ViewData["w"] = "你的账号是:" + struser + "你的密码是:" + strpass;
            return View();
        }

    4.在Index.aspx中写接受传值

    <%=ViewData ["w"] %>

 

  ViewData做一下解释

1.ViewData[]字典:


   1.简单的传值

 

   a.首先我们在控制器HomeController.cs中创建一个ViewData[]字典:

   public ActionResult Index()
        {
            ViewData["strValue"] = "这是一个传递的值";//这里是我们传递的ViewData[]

            return View();
        }

   b.然后我们就可以在相对应得Index.aspx中写上:

    <%: ViewData["strValue"] %>

控制器向视图中传值ViewData详解

  1.将一个字符串传值到视图中

         在action中我们将字符串保存在ViewData(或ViewBag [asp.net 3或以上才可用])中代码如下:

         public ActionResult Index()
        {
            ViewData["str1"]= "这是一个字符串";

             //也可以使用ViewBag来传递值

            ViewBag.str2="这是另外一个字符串";

            return View();
        }

        在视图中我们可以用下面代码将字符串显示出来

        <h1>@ViewData["str1"]</h1>

        <h1>@ViewBag.str2</h1>

     2.将一个字符串集合传递到视图中

        public ActionResult Index()
        {
           List<string> str1= new List<string>();
            str1.Add("1111");
            str1.Add("2222");
            str1.Add("3333");
            ViewData["str"] = str1;

            return View();
        }

        在视图中我们通过下面语句将str1的值显示出来

       @foreach (var a in ViewData["str"] as List<string>)
         {
           @a
         }

       3.将一个datatable的值传递到视图中

           public ActionResult Index()
            {

            DataTable newtable = new DataTable("d");
            newtable.Columns.Add("商品编号", typeof(string));
            newtable.Columns.Add("客户编号", typeof(string));
            DataRow NewRow = newtable.NewRow();
            NewRow["商品编号"] = "132323213434";
            NewRow["客户编号"] = "344223443244";
            newtable.Rows.Add(NewRow);
            DataRow SNewRow = newtable.NewRow();
            SNewRow["商品编号"] = "343432445456";
            SNewRow["客户编号"] = "454523432453";
            newtable.Rows.Add(SNewRow);
            ViewData["dt"]= newtable;
            return View();
            }

            在视图中我们通过下面语句将dt的值显示出来

            注意:在顶部要先加上:@using System.Data;

            <ul>
            @foreach(DataRow dr in (ViewData["dt"] as DataTable).Rows)
               {
                 <li>
                 @dr["商品编号"],@dr["客户编号"],
                 </li>
                }
              </ul>

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