给Action传值的一些常见问题:
1)普通参数,没有默认值,有不可空参数必须传值,如果可以传值也不可以传值就加?比如(int?)就不用传
适应于查询参数比较少的情况
2)Model类.这种类叫ViewModel
3)FormCollection,采用fc["name"]这种方法访问,类似于HttpHandler中用ctx["name"]
适应于表单元素不确定,动态的情况.
3.Action的方法不能重载,所以如果一个Controller中不能同时存在这两个Action:public ActionResult T1 (string name);public ActionResult T1(int age
4.Action参数可以一部分普通参数,一部分Model
5.Action参数如果在请求中没有对应的值,则Model类的形式取默认值:数字是0,boolean是false,引用类型是null. 如果是普通参数的形式:会报错,如果允许为空,要使用int?.可以使用C#的 可选参数语法来设定默认值,但有默认 值的参数必须在没有默认值的参数之后
1.一个Controller可以有多个方法,这些方法叫Action
2.Action的三种类型的参数:普通参数,Model类,FormCollection1)普通参数,没有默认值,有不可空参数必须传值,如果可以传值也不可以传值就加?比如(int?)就不用传
适应于查询参数比较少的情况
2)Model类.这种类叫ViewModel
3)FormCollection,采用fc["name"]这种方法访问,类似于HttpHandler中用ctx["name"]
适应于表单元素不确定,动态的情况.
3.Action的方法不能重载,所以如果一个Controller中不能同时存在这两个Action:public ActionResult T1 (string name);public ActionResult T1(int age
特殊情况:可以在具体的方法上写上标注[HttpGet]或者[HttpPost],执行Get请求时执行标注[HttpGet]的方法, 执行Post请求时执行标注[HttpPost]的方法
4.Action参数可以一部分普通参数,一部分Model
5.Action参数如果在请求中没有对应的值,则Model类的形式取默认值:数字是0,boolean是false,引用类型是null. 如果是普通参数的形式:会报错,如果允许为空,要使用int?.可以使用C#的 可选参数语法来设定默认值,但有默认 值的参数必须在没有默认值的参数之后
6.上传文件的参数用HttpPostedFileBase类型,注意不是HttpPlstedFile类型
在view里面如果要使用哪个类,就要自己手动using
hidden隐藏字段------<input type="hidden"/>
return Redirect("/Person/List")重定向
return HttpNotFound()返回的就是404
return JavaScript("alert('aaa');")返回一段JavaScript给浏览器