web-dev-qa-db-ja.com

javascriptからc#(コントローラー)に日時を渡す

Jqueryとmvc3を使用してC#に日付時刻を渡すにはどうすればいいですか?これは私が持っているものです

var date = new Date();    
$.ajax(
   {
       type: "POST",
       url: "/Group/Refresh",
       contentType: "application/json; charset=utf-8",
       data: "{ 'MyDate': " + date.toUTCString() + " }",
       success: function (result) {
           //do something
       },
       error: function (req, status, error) {
           //error                        
       }
   });

C#が日付を理解するために、日付の形式を把握することはできません。

57
Tija

次の形式が機能するはずです。

$.ajax({
    type: "POST",
    url: "@Url.Action("refresh", "group")",
    contentType: "application/json; charset=utf-8",
    data: JSON.stringify({ 
        myDate: '2011-04-02 17:15:45'
    }),
    success: function (result) {
        //do something
    },
    error: function (req, status, error) {
        //error                        
    }
});
27
Darin Dimitrov

ToISOString()を使用してみてください。 ISO8601形式の文字列を返します。

GETメソッド

javascript

$.get('/example/doGet?date=' + new Date().toISOString(), function (result) {
    console.log(result);
});

c#

[HttpGet]
public JsonResult DoGet(DateTime date)
{
    return Json(date.ToString(), JsonRequestBehavior.AllowGet);
}

POSTメソッド

javascript

$.post('/example/do', { date: date.toISOString() }, function (result) {
    console.log(result);
});

c#

[HttpPost]
public JsonResult Do(DateTime date)
{
     return Json(date.ToString());
}
76
rnofenko

これを試して

var date = new Date();    
$.ajax(
   {
       type: "POST",
       url: "/Group/Refresh",
       contentType: "application/json; charset=utf-8",
       data: "{ 'MyDate': " + date.getTimezoneOffset() + " }",
       success: function (result) {
           //do something
       },
       error: function (req, status, error) {
           //error                        
       }
   });

C#で

DateTime.Now.ToUniversalTime().AddMinutes(double.Parse(MyDate)).ToString();
1
santosh singh

次のように日時文字列をラップする必要があることがわかりました。

"startdate": "\/Date(" + date() + ")\/"

1時間かかって、WCFサービスを有効にして、XDにエラーメッセージを返した

0
John Zumbrum

JavascriptにはtoJSON()メソッドがあり、Dateオブジェクトの文字列表現を返します。 toJSON() はIE8 +であり、 toISOString() はIE9 +です。両方ともYYYY-MM-DDTHH:mm:ss.sssZ フォーマット。

var date = new Date();    
    $.ajax(
       {
           type: "POST",
           url: "/Group/Refresh",
           contentType: "application/json; charset=utf-8",
           data: "{ 'MyDate': " + date.toJSON() + " }",
           success: function (result) {
               //do something
           },
           error: function (req, status, error) {
               //error                        
           }
       });
0
Kamran