Datepicker在asp.net MVC中不起作用

时间:2016-08-07 11:43:19

标签: asp.net asp.net-mvc-5

我正在使用.net MVC。这是我创建一个具有属性截止日期的法案的剃刀观点。我想在我的代码中使用日期选择器,但是当我使用以下代码时它不起作用:

<div class="form-group">
        @Html.LabelFor(model => model.DueDate, new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.TextBoxFor(model => model.DueDate, new { id = "datepicker" })
            @Html.ValidationMessageFor(model => model.DueDate)
        </div>
    </div>
    <script type="text/javascript">
$(document).ready(function () { $("#datepicker").datepicker({ });});
</script>

所以我将代码更改为以下它然后开始工作但是如何将duedate值传递给控制器​​上面的代码自动将截止日期值附加到对象,但下面的代码不能。

        <div class="form-group">
        @Html.LabelFor(model => model.DueDate, new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            <input type="date" id="datepicker" class="form-control"/>   //Changing
            @Html.ValidationMessageFor(model => model.DueDate)
        </div>
    </div>
    <script type="text/javascript">
$(document).ready(function () { $("#datepicker").datepicker({ });});
</script>

1 个答案:

答案 0 :(得分:3)

第一个代码段中的代码使用 jQuery UI 库提供的日期时间选择器控件。要使其工作,您需要按以下顺序添加对以下文件的引用:

  1. 的jquery.js
  2. jQueryUI.js
  3. jQueryUI.css
  4. 所以你的最终代码应该是这样的:

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.3/jquery.min.js"></script>
    <script src="http://code.jquery.com/ui/1.11.1/jquery-ui.min.js"></script>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.css" rel="stylesheet">
    <script type="text/javascript">
        $(function () {
            $("#datepicker").datepicker();
        });
    </script>
    

    第二个代码段中的代码使用了类型为date的HTML 5输入,正如Stephen所指出的那样。如果浏览器支持,则会自动输入日期时间选择器

    第二个代码段不起作用的原因是MVC中的绑定发生在name属性上。因为您的C#属性被称为DueDate,您需要将name="DueDate"添加到输入元素。

    更改此行:

    <input type="date" id="datepicker" class="form-control"/> 
    

    对此:

    <input name="DueDate" type="date" id="datepicker" class="form-control"/>