Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET MVC 4不适用于jquery日期选择器_Jquery_Asp.net_Jquery Ui_Asp.net Mvc 4 - Fatal编程技术网

ASP.NET MVC 4不适用于jquery日期选择器

ASP.NET MVC 4不适用于jquery日期选择器,jquery,asp.net,jquery-ui,asp.net-mvc-4,Jquery,Asp.net,Jquery Ui,Asp.net Mvc 4,我是asp.NETjQuery和html5的初学者,我正在开发一个asp.NETMVC4站点,在那里我有一个带有两个日期字段的表单。我不想手动插入日期,因此我尝试使用此解决方案实现一个简单的日期选择器: <fieldset> <legend>RangeDateViewModel</legend> <div class="editor-label"> Start Date </div>

我是asp.NETjQuery和html5的初学者,我正在开发一个asp.NETMVC4站点,在那里我有一个带有两个日期字段的表单。我不想手动插入日期,因此我尝试使用此解决方案实现一个简单的日期选择器:

     <fieldset>
    <legend>RangeDateViewModel</legend>
    <div class="editor-label">
        Start Date
    </div>
    <div class="editor-field">
        @Html.TextBoxFor(model => model.StartDate,  new{ @class = "date" })
        @Html.ValidationMessageFor(model => model.StartDate)
    </div>

    <div class="editor-label">
        End Date
    </div>
    <div class="editor-field">
        @Html.TextBoxFor(model => model.EndDate,  new{ @class = "date" })
        @Html.ValidationMessageFor(model => model.EndDate)
        </div>

        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>


   }

<div>
    @Html.ActionLink("Back to List", "Index")
</div>

@section Scripts {
@Scripts.Render("~/bundles/jqueryval")

@Scripts.Render("~/bundles/jqueryui")
@Styles.Render("~/Content/themes/base/css")

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.min.js")" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $(".date").datepicker();
    });
</script>
}

您需要告诉日期选择器您没有使用月首日期格式:

$.datepicker.setDefaults({
    dateFormat: "dd/mm/yy"
});
但是,这可能不是问题的主要部分(根据您的浏览器文化,日期选择器可能已经使用了第一天日期格式)


第一天的日期格式和日期以及日期也存在问题。这是我坚持使用a的主要原因之一,因为它被所有不同的库正确解析。

JQuery是一个选项,但您可以采用.NET方法。我假设StartDate和EndDate来自ViewModel,并且是DateTime类型

只需使用
@Html.EditorFor
intead of
@Html.TextBoxFor
即可立即将控件转换为日期选择器

通过在ViewModel DateTime上指定数据注释属性,还可以设置日期显示和行为的特定规则。例如,这可能是StartDate Viewmodel属性:

[DisplayFormat(NullDisplayText = "", DataFormatString = "{0:d}")]
[Display(Name = "Start Date")]
public DateTime? StartDate{ get; set; }
不知道如何用C#进一步格式化日期选择器?没问题,继续JQuery:

$(':input[data-datepicker]').datepicker({ dateFormat: 'dd/mm/yy' });

我很抱歉问了下面这个愚蠢的问题(我是新手),但我该如何更改代码?因为我试图使用你的代码,但我没有使用日期选择器;我试图写$(“.date”).datepicker();$。setDefaults({dateFormat:“dd/mm/yyyy”});但它不起作用(总是相同的警报)。Sorrydatepicker使用“y”表示2位数年份,“yy”表示4位数。@前台-您的型号是什么样子的?你能把这个添加到你的问题中吗?@JasonBerkan我把视图模型添加到我的问题中。感谢您的时间,反序列化根据HTTP方法的不同而有所不同。如果您使用GET,绑定器将使用不变区域性绑定参数,如果您使用POST,绑定器将使用当前区域性我没有看到您的评论@hazzik,抱歉。我用一根柱子。好的,我该怎么解决这个问题呢?:)您需要设置日期格式,以反映ASP.NET应用程序上的当前文化,如答案中所述。这并没有回答他的问题,但我完全同意并喜欢MVC中的编辑器/显示模板。前台,为了节省时间,你可能想查看一下:DOn第二次想到我已经解决了这个问题。我提供了几种不同的方法来正确设置日期时间的格式。可能是你在我的一些编辑之前做出了推荐:)在你的编辑中,而不是最初:)我在你提供答案和MVC处理这种情况的正确模式时对此进行了投票:D链接了解更多信息:该道具上的
虚拟
修饰符的用途是什么?Tony我会做:D@Shenaniganz,谢谢你的回答,我会试试看(如果我的模拟器决定合作)无论如何,你们中有人能够回答我的另一篇帖子吗?我在与double合作时遇到了问题。
$(':input[data-datepicker]').datepicker({ dateFormat: 'dd/mm/yy' });