0

我已经实现了 jquery 日期选择器,但我正在努力解析日期时间值。场景如下,用户应使用 jquery datepicker 选择日期,日期应采用以下格式 ( dd.MM.yy),日期时间值应使用 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 回答