Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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 5.2 何时以及如何使用Html5DateRenderingMode_Asp.net Mvc 5.2 - Fatal编程技术网

Asp.net mvc 5.2 何时以及如何使用Html5DateRenderingMode

Asp.net mvc 5.2 何时以及如何使用Html5DateRenderingMode,asp.net-mvc-5.2,Asp.net Mvc 5.2,我知道Html5DateRenderingMode用于显示与日期/时间相关的值,可以设置为- @{ Html.Html5DateRenderingMode = Html5DateRenderingMode.Rfc3339; } @{ Html.Html5DateRenderingMode = Html5DateRenderingMode.CurrentCulture; } 我已尝试在视图(.cshtml)中声明。与EditorFor as一起使用时- @Html.EditorFor(emp =

我知道Html5DateRenderingMode用于显示与日期/时间相关的值,可以设置为-

@{ Html.Html5DateRenderingMode = Html5DateRenderingMode.Rfc3339; }
@{ Html.Html5DateRenderingMode = Html5DateRenderingMode.CurrentCulture; }
我已尝试在视图(.cshtml)中声明。与EditorFor as一起使用时-

@Html.EditorFor(emp => emp.StartDate, new { htmlAttributes = new { @class = "form-control" } })
它根据声明的渲染模式显示日期

问题-
-我们是否总是在视图(.cshtml)中设置日期呈现模式,或者也可以在ViewModel中声明日期呈现模式。如果是,如何进行?
-设置Html5DateRenderingMode的实际用途是什么? (考虑是否可以使用ApplyFormatInEditMode和DataFormatString注释实现相同的功能)


谢谢大家!

关于这个特殊属性的文档非常稀少。有关其用途的最佳描述,请参见资料来源:

// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.

namespace System.Web.Mvc
{
    /// <summary>
    /// Controls the value-rendering method For HTML5 input elements of types such as date, time, datetime and datetime-local.
    /// </summary>
    public enum Html5DateRenderingMode
    {
        /// <summary>
        /// Render date and time values according to the current culture's ToString behavior.
        /// </summary>
        CurrentCulture = 0,

        /// <summary>
        /// Render date and time values as Rfc3339 compliant strings to support HTML5 date and time types of input elements.
        /// </summary>
        Rfc3339,
    }
}
//版权所有(c)Microsoft Open Technologies,Inc.保留所有权利。有关许可证信息,请参阅项目根目录中的License.txt。
命名空间System.Web.Mvc
{
/// 
///控制类型为date、time、datetime和datetime local的HTML5输入元素的值呈现方法。
/// 
公共枚举Html5DateRenderingMode
{
/// 
///根据当前区域性的ToString行为呈现日期和时间值。
/// 
CurrentCulture=0,
/// 
///将日期和时间值呈现为符合Rfc3339的字符串,以支持HTML5日期和时间类型的输入元素。
/// 
Rfc3339,
}
}
处理与日期/时间相关的HTML5输入类型时,输入的
值必须设置为ISO或“Rfc339”格式,否则内置浏览器控件将无法正确解释日期/时间。这仅适用于使用支持这些类型并提供日历/时间控件的现代浏览器时,以允许您以结构化方式拾取或以其他方式输入日期时间信息

这个枚举实际上只是一个开/关开关,而不是两个单独的选择,它的存在很可能会根据您的目标受众允许一些灵活性。如果你真的只想要一个标准的文本输入,或者你只关注桌面,遗憾的是,到目前为止,桌面对浏览器的支持仍然很可怜,那么你可能希望输入值对用户更“友好”,因为它是他们当前的文化,即
08/12/2015
vs
2015-08-12
。但是,如果您希望依赖现有的浏览器控件(如果有的话),在必要时使用多边形填充,或者关注支持通用的移动控件,则需要以适当的ISO格式输出值

不过,老实说,我以前从来没有玩弄过这种设置,也从来没有真正需要这样做

DataFormatString
属性及其
ApplyFormatInEditMode
参数而言,是的,使用它可以实现几乎相同的功能。更宽松的是,您可以使用任何格式,但是如果您在编辑模式下应用ISO格式,那么您将执行与设置为
Html5DateRenderingMode.rfc339
时相同的设置