datetimepicker没有将值传递给Controller

时间:2017-04-28 20:51:19

标签: asp.net-mvc

我有来自MVC表单的输入日期,我希望将datetimepicker值传递给控制器​​,但它无法正常工作。不知道我错过了什么。

查看add.cshtml

<form id="msform" class="form-inline" method="post">
<div class="form-group">
    <div class='input-group date' id="txtReviewDate">
        <input type="text" class="form-control"/>
        <span class="input-group-addon">
            <span class="glyphicon glyphicon-calendar"></span>
        </span>
    </div>
</div>

<script type="text/javascript">
    $(function () {
        $('txtReviewDate').datetimepicker({
            format: 'MM/DD/YYYY',
            defaultDate:new Date()
        });
    });
</script>
 </form>

模型

public Nullable<DateTime> tempReviewDate

控制器代码

[HttpPost]
public ActionResult Add (calfreshByWorkUnitID customerinfo)
{
    var vartempReviewDate = Convert.ToDateTime(Request["txtReviewDate"].ToString());
}

1 个答案:

答案 0 :(得分:3)

您的输入没有name属性,因此它不会提交值。表单仅提交其成功表单控件的名称/值对。

将视图更改为绑定到模型(请注意我假设您显示的模型名为calfreshByWorkUnitID

@model calfreshByWorkUnitID
....
@using (Html.BeginForm(...))
{
    ....
    @Html.TextBoxFor(m => m.tempReviewDate, new { @class="form-control" })

脚本(将插件附加到您的输入)

$('#tempReviewDate').datetimepicker({
    format: 'MM/DD/YYYY',
    defaultDate:new Date()
});

然后在POST方法中,您的模型将与所选日期正确绑定

[HttpPost]
public ActionResult Add (calfreshByWorkUnitID customerinfo)
{
    // customerinfo.tempReviewDate contains the selected value