0

jquery 日付ピッカーを実装しましたが、datetime 値の解析に苦労しています。シナリオは次のとおりです。ユーザーは jquery datepicker を使用して日付を選択し、日付は次の形式 ( dd.MM.yy) である必要があり、datetime 値は ajax を使用してコントローラーに送信し、(これらの例を簡単にするために) json を介していくつかのダミー データを受信する必要があります。

私は以下を持っています

Views/Shared/EditorTemplates/DateTime.cshtml

@model DateTime
@Html.TextBox("", Model.ToString("dd.MM.yy"),  new { @class = "date" })

ビュー/ホーム/ @Html.EditorFor(m => m.MyDate)

<script type="text/javascript">
    $('#pickDate').click(function () {
        var date = $('input[name="MyDate"]').val();    
        $.ajax({
            type: 'POST',
            contentType: 'application/json; charset=utf-8',
            data: { MyDate: date }, 
            url: '/Home/DateManipulation',
            success: function (result) { alert('Success');  },
            error: function () { alert("error"); }
        });    
    });
</script>

HomeController.cs
 [HttpPost]
 public JsonResult DateManipulation(string MyDate)
 {
    DateTime date = DateTime.ParseExact(MyDate, "dd.MM.yy", CultureInfo.InvariantCulture);              
    var process = //omitting 
    return Json(process);
 }

そして、_Layout.cshtml では、dom の準備ができています

 $('.date').datepicker({ dateFormat: "dd.MM.yy" });

コントローラーで日付を取得していません。エラーは無効な JSON プリミティブ: MyDate です。

4

1 に答える 1

1

あなたの呼び出しで/Home/DataManipulation/

<script type="text/javascript">
    $('#pickDate').click(function () {
        var date = $('input[name="MyDate"]').val();    
        $.ajax({
            type: 'POST',
            contentType: 'application/json; charset=utf-8',
            data: { MyDate: date }, 
            url: '/Home/DateManipulation',
            success: function (result) { alert('Success');  },
            error: function () { alert("error"); }
        });    
    });
</script>

に置き換えdata: { MyDate: date }てみてくださいdata: JSON.stringify({ MyDate: date })

于 2012-09-11T09:58:08.177 に答える