Request.Form和Request.QueryString两个接收参数来源不同,前者是接收从表单Form来的参数,后者是从URL来的参数。
Request.Form:获取以POST方式提交的数据(接收Form提交来的数据);
Request.QueryString:获取地址栏参数(以GET方式提交的数据)
Request:包含以上两种方式(优先获取GET方式提交的数据),它会在QueryString、Form、ServerVariable中都搜寻一遍。
request.querystring 获取get方法提交的数据
querystring和form都是asp中获取数据的一个方法.
form是用来获得表单提交的数据,querystring是用来获得标识在URL后面的所有返回的变量及其值;
如<a href=”4-1.asp?name=白芸&age=22”>
就可以用request.querystring("name")来获得上面链接传来的参数值.
例:a1=request.querystring("name")
a2=request.querystring("age")
则 a1为"白芸",a2为"22".
明白了吧!
原文链接:https://blog.csdn.net/qq_33764934/article/details/79105438
---------------------------------------------------------------------------------------------------------------------------------
参数映射
控制器方法
public ActionResult GetStudentList(int classId)//classId 为参数映射,类型和名字不能错
{
//1.获得班级号
//int classId = Convert.ToInt32(Request.Form["classId"]);
//2.调用BLL
List<Students> listStu = new List<Students>();
listStu = studentManage.GetStudentList(classId);
//3.保存数据,传递View
ViewData["listStu"] = listStu;
ViewBag.Id = classId;
return View("StudentList");
}
视图
控制器方法里的参数名和视图中目标参数名要一致
如上view所示,form中 班级号列,name="classId",控制器中映射参数也为classId
不过如果参数很多,用这种方法也很麻烦
ruquest.form获取
参数映射后
解决参数多映射麻烦的方法就是模型映射
模型映射需要保证表单中各列的name名和映射的模型名相同
如图,控制器方法中映射模型 Students
视图中 ,各name的key与模型中对应属性名一致(不区分大小写)
模型中各属性名
模型映射最关键的就是参数的name一定要和实体类的属性一致,因为在自动构造模型的时候,就是根据参数的name对应到实体类的属性。
模型映射基本步骤
- 获取表单数据
- 自动构造实体模型
- 调用业务逻辑方法并传递模型