MVC中url传值和form传值

客户端的form 一般有两个提交方式 为 GET 和 POST 不常用的有PUT 和DELETE

<form action="/home/index?querystring_d=4" method="post">
    <input type="text" name="input_a" id="input_a" value="1a" />
    <input type="text" name="input_a" value="10a" />
    <input type="text" name="input_b"value="2" />
    <input type="text" name="input_c" value="3" />
    <input type="text" name="inputlist_s" value="l1" />
    <input type="text" name="inputlist_s" value="l2" />
    <input type="text" name="inputlist_int" value="3a" />
    <input type="text" name="inputlist_int" value="4" />
    <input type="submit" value="queding" />
</form>

GET:此方法会把action内,问号后的参数先删除,然后吧 form内的参数放到url中去传输.
POST:会把url内的参数发送,同时在content里发送form数据

1.Controller内action中的参数 支持post/get/?参数=1
接收form内数据
接收url内的数据

1传入数据不重复
         public ActionResult Index(int input_a){return View()}
         //数据直接获取,但格式不对应的话会为出错

2传入数据重复,比如form内有两个相同name的input    
        public ActionResult Index(int input_a){return View()}
        //只取第一个获取的数据,如果过传入数据格式不正确则值为null (form内有两个或多个相同name的input)

        public ActionResult Index(int[] inputlist_int){return View()}
        //如果传入数据格式只要有一个不正确 inputlist_int就为null 即使里面有对的数据

2.Request.Querystring[“val”]数据 支持get/?参数=1
-不接收form内数据-
接收url内的数据

1传入数据不重复
        public ActionResult Index(){
        {
            string  input_a_1= Request.QueryString["input_a"];
            return View()
        }
        //传入数据为string只取第一个获取的数据

2传入数据重复,比如form内有两个相同name的input      
        public ActionResult Index(){
            string  input_a_1= Request.QueryString["input_a"];
            return View()
        }
        //传入数据为string 格式为"1,2,3",值为相同name的值合并并用逗号分割

3.在action中传入FormCollection数据 支持post
接收form内数据
-不接收url内的数据-

1传入数据不重复
        public ActionResult Index(FormCollection form){
        {
             string input_a_form = form["input_a"];
            return View()
        }
        //传入数据为string只取第一个获取的数据,同Request.Querystring

2传入数据重复,比如form内有两个相同name的input      
        public ActionResult Index(FormCollection form){
             string input_a_form = form["input_a"];
            return View()
        }
        //传入数据为string 格式为"1,2,3",值为相同name的值合并并用逗号分割,同Request.Querystring

4.定义一个Model,在action的参数中使用model传入数据 支持post/get/?参数=1
接收form内数据
接收url内的数据

    public class Mymodel {//model必须为public 它的属性也必须为public
       public string input_a { get; set; }
       public string input_b { get; set; }
       public string input_c { get; set; }
       public int[] inputlist_int { get; set; }
       public string querystring_d { get; set; }
    }
1传入数据不重复
        public ActionResult Index(Mymodel mymodel){return View()}
        //可以传入通过url和from传入数据

2传入数据重复,比如form内有两个相同name的input      
        public ActionResult Index(Mymodel mymodel){return View()}
        //参数如果不是数组的话,那么相同name的input只会传入第一个name的input值,其他被丢弃
        //传入的数据是数组的话 [] 的话那么重复值会直接传到这个入组里入上面的public int[] inputlist_int { get; set; }
        //如果发现相同name里存在一个 "字符串"的话 其他的为 数字的话,那么存在一个一个错误格式,那么inputlist_int的值为null.

参数法 model法 querystring法 formcollection法 四中方法那种最好???

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值