将数据从视图传递到控制器而不刷新视图

时间:2012-05-24 09:36:09

标签: ajax asp.net-mvc-3 .post

我的视图中有一个脚本:

$('.datepicker').datepicker
(
{ onSelect: function (dateText, inst) {
    //pass dateText to my controller

});
 </script>

我的控制器是这样的:

    public ActionResult Index()
    {
        string dateSelected = dateText; //read dateText here
        if (DateTime.TryParse(dateSelected, out date))
        {
            date = Convert.ToDateTime(dateSelected);
            var reservations = db.Reservations.Where(r => r.Date == date).Include(r => r.Employee).Include(r => r.Room).OrderByDescending(r => r.Date);

            return View(reservations);
        }
        return View();

    }

我希望将dateText传递给控制器​​,而不刷新或重新加载当前页面。怎么做?

我之前尝试过表单并且在datepicker的onselect事件上,我自动提交表单,以便控制器可以接受它。但我不希望刷新或重新加载当前页面。

我只想将dateText传递给控制器​​而不会让用户注意到传递..某种$ .post我想但我不知道如何实现它..

更新:这是我的尝试,出了什么问题:

好的,这是我的剧本:

     JSONstring = JSON.stringify(dateText);
    $.post("/Home/Index", { jsonData: JSONstring });

这是我的控制器:

     public ActionResult Index(string jsonData)
    {
        CacheClear();
        string dateSelected = jsonData;
         .....
        //i tried to debug it, but no value of jsonData

    }

2 个答案:

答案 0 :(得分:2)

  

我希望dateText在没有当前的情况下传递给控制器   页面正在刷新或重新加载。怎么做?

你可以使用AJAX。

答案 1 :(得分:0)

使用ajax并发送ajax数据字符串中的所有变量或数据,并提供控制器的url例如

    function add_to_cart(id , title, price,qty){

    $.ajax({
        type: "POST", 
   url: "your controller" + id ,
  data: "&title=" + title + "&price=" + price +"&quantity=" + qty ,
        complete: function(data) {
            //alert("Item added to cart");

        }
    });
   }