0

私の見解には次のようなスクリプトがあります。

$('.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をコントローラーに渡したい。どうやってするか?

以前にフォームを試しましたが、日付ピッカーの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

    }
4

2 に答える 2

2

現在のページを更新または再ロードせずに、dateTextをコントローラーに渡したい。どうやってするか?

AJAXを使用できます。

于 2012-05-24T09:37:49.947 に答える
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");

        }
    });
   }
于 2012-05-24T10:01:26.857 に答える