如何将日期时间从弹出对话框传递给mvc控制器

时间:2017-07-21 17:01:30

标签: javascript c# jquery asp.net-mvc

我的要求是,当我点击一个按钮时,它应该打开一个对话框,我可以在其中选择日期,最好是开始日期和结束日期。并且在单击ok / submit时,它应该将datetime传递给controller [HttpPost]动作方法。 这就是我尝试过的......不幸的是它不起作用

input name="ActivateBtn" type="submit" class="btn btn-primary" value="Activate" onclick="opendatedialog()" />
<script>
    function opendatedialog() {
        $("#datepickerdialog").dialog({
            height: 300,
            width: 500,
            modal: true,
            resizable: false,
            buttons: {
                "OK": function () {
                    var viewUrl = '@Url.Action("Activate", "User")';
                    $.post(viewUrl, new { startDate: $('.datepickerstart').val(), endDate: $('.datepickerend').val() });
                    $(this).dialog("close");
                    return true;
                },
                "Cancel": function () { $(this).dialog("close"); return false; }
            },
            open: function () {
                $(this).siblings('.ui-dialog-buttonpane').find("button:contains('OK')").focus();
            }
        });
    }
    $(function () {
        $('.datepickerstart').datepicker(
            {
                minDate: 0,
                dateFormat: 'yy-mm-dd'
            }).datepicker("setDate", "0");
        $('.datepickerend').datepicker(
            {
                minDate: 0,
                dateFormat: 'yy-mm-dd'
            }).datepicker("setDate", "2099/12/31");
    });

// UserController中

[HttpPost]
public ActionResult Activate(DateTime startDate, DateTime endDate)
{
    //TO DO
    return RedirectToAction("Index");
}

此处点击激活按钮,弹出带有datepicker的对话框。但之后ok按钮点击没有做任何事情。

1 个答案:

答案 0 :(得分:0)

$.post(viewUrl, { startDate: $('.datepickerstart').val(), endDate: $('.datepickerend').val() });

这确实奏效了。我删除了“新”