首页 > 代码库 > MVC5学习笔记——视图与控制器传值的几种方法

MVC5学习笔记——视图与控制器传值的几种方法

一、页面取值传给控制器

1、表单传值----利用Action


视图页:
        <form action="方法名" method="post">
            <label for="content">值内容</label>
            <input type="text"  name="bdzhi" id="content" /><br />
            <input type="submit" value="http://www.mamicode.com/表单传值">
        </form>
   控制器:
         public ActionResult 方法名(FormCollection fc)
        {
            ViewBag.message = fc["bdzhi"];
            return View();
        }
        这里是通过ViewBag返回页面

         public ActionResult 方法名()
        {
            ViewBag.message =Request.Form["bdzhi"];
            return View();
        }


2、AJAX传值

    <div>
        <h2>AJAX传值</h2>
        <span id="sex"></span><br />
        <input type="radio" name="sexs" checked="checked" value="http://www.mamicode.com/男">男     <input type="radio" name="sexs" value="http://www.mamicode.com/女">女<br />
        <input type="button" value="http://www.mamicode.com/提交" id="bt">
        <script>
            //提交按钮绑定点击事件
            $("#bt").on(‘click‘, function () {
                //获取选中的radio选项的值
                var value = $("input[type=radio]:checked").val()
                //后台通过Request.Form["value"]可以取到
                params = "value="http://www.mamicode.com/ + value;"POST",
                    url: "/xuexi/xingbie",
                    data: params,
                    success: function (data) {
                        //清空id=sex的span标签里的内容
                        $("#sex").empty();
                        //将后台返回的数据添加到span标签里
                        $("#sex").append(data);
                    }
                })
            })
        </script>
    </div>        
        控制器:        
        public string xingbie(string sex)
        {
            sex = "您的性别是" + Request.Form["value"];
            return sex;
        }



二、控制器返回页面

1、使用ViewBag(视图包)传递数据

         控制器中:ViewBag.属性="任意";

         页面中:   @ViewBag.属性

         属性可以随便填写!!!

例如:

控制器中方法:

        public ActionResult 方法()

        {

            ViewBag.message ="哈哈哈";

            return View();

        }

页面中即可直接使用:

        <span>@ViewBag.message</span>

2、使用View Data传递数据

         控制器中:ViewData["随意起"]="任意";

         页面中:   @ViewData["随意起"]

使用方法同上

3、使用TempData传递数据

         控制器中:TempData["随意起"]="任意";

         页面中:   @TempData["随意起"]

使用方法同上

        注意!TempData的值在取了一次后则会自动删除刷新页面,则TempData[""]为Null

只是据说哈~~我没试验过,你们可以试验下告诉我!!

4、提供视图模型对象

控制器中:

             public ViewResult Index()  
            {  
            DateTime date = DateTime.Now;  
                return View(date);  
            }
   视图:
            @model DateTime 
            @{  
                 ViewBag.Title = "Index";  
               }  
            <h2>Index</h2> 
            今天是: @Model.DayOfWeek

本文出自 “咕咚一声” 博客,请务必保留此出处http://gudongyisheng.blog.51cto.com/8032088/1590798

MVC5学习笔记——视图与控制器传值的几种方法