控制器从视图接收参数--第一篇

来源:互联网 发布:学java编程基础 编辑:程序博客网 时间:2024/06/05 23:03
控制器从视图里面获取数据


控制器需要经常访问输入的数据,比如说  表单传入的  , 比如说URL里面的参数


下面就介绍几种接收输入的方法:


第一种:用Request.Form , Request.QueryString 去获取
在web form 里面我们经常用到  Request   ,  Response  ,   HttpContext这三个东西,在mvc应用程序里面照样可以使用!!!




打个比方,现在有一个视图:
@{
    ViewBag.Title = "Index";
}
<h2>Index</h2>
@using (Html.BeginForm("Index", "User" ))
{
    <div>
        input user : @Html.TextBox("username")
        <br />
        input password : @Html.Password("password")
        <br />
        <input id="Submit1" type="submit" value="submit" />
    </div>
     
}




里面有个表单对应的控制器,用Request.Form就很容易获得数据了


public ActionResult Index()
        {
            string username = Request.Form["Username"];
            string password = Request.Form["password"];
            string query = Request.QueryString["id"];
            return View();
        }
这里提醒一下  Html 标签里面的 name 跟 Request.form []里面的字符串只要名字一样,不区分大小写!!
顺便提一下,如果返回的URL是:  http://localhost:53231?id=34 
那么Request.QueryString["id"]就可以读到34了 ,  跟 web form 是一样的。








第二种,为对应的动作方法提供参数
我把刚才的东西改写一下:
public ActionResult Index( string username , string  password    )
        {
            string name =  username;
            string pwd =  password;
            return View();
        }
这里就要提一下Html.BeginForm的用处了!!
上面的表单的 表单post 动作指向的是  UserController 的 Index动作,
所以表单里面的  <input name="username"> 和 <input name="password">就会变成相应的参数!!


还有其他重要的方法,下一篇博客再讨论!!






 
0 0