在从ASP.NET mvc网络应用渲染某些显示时,只是想知道Chrome和I.E之间是否存在任何差异信息。
例如
[DataType(DataType.Date, ErrorMessage = "Incorrect format or missing date")]
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
public DateTime? StartDate { get; set; }
在I.E中,它只是一个纯白色的框,用于输入字符,其中铬显示dd / mm / yyyy并保持该格式。
与时间相同:
[DataType(DataType.Time, ErrorMessage = "Incorrect time")]
//[RequiredIfTrue("MondayTrue", ErrorMessage ="Day has been marked as working")]
public DateTime? MondayStart { get; set; }
I.E中的纯白色盒子,其中铬有 - - -
有没有办法让这些属性在I.E中起作用?
I.etml line
<input name="StartDate" class="div-form-control text-box single-line" id="txtStartDate" type="date" value="" data-val-date="The field StartDate must be a date." data-val="true">
chrome html line
<input class="div-form-control text-box single-line" data-val="true" data-val-date="The field StartDate must be a date." id="txtStartDate" name="StartDate" type="date" value="">
应该添加,我使用I.E 11,所以认为这将有效。
在我的MVC布局页面中,
这些部分视图在detailview div中呈现:
<div class="containerBody">
<div id="detailView"></div>
</div>
查看
<div style="display: table-row;">
<div class="div-label-text" , style="display: table-cell"> @Html.LabelFor(model => model.StartDate) </div>
<div class="div-EditorFor" , style="display: table-cell"> @Html.EditorFor(model => model.StartDate, new { htmlAttributes = new { @class = "div-form-control", id = "txtStartDate" } }) </div>
<div class="div-val-cell" , style="display: table-cell"> @Html.ValidationMessageFor(model => model.StartDate, "", new { @class = "text-danger" }) </div>
</div>
答案 0 :(得分:1)
这取决于您使用的是哪个版本的IE。较旧的IE版本不支持type =“date”作为HTML 5属性。 Chrome对HTML 5的支持总是更好。查看http://blogs.artinsoft.net/Mrojas/archive/2013/01/30/The-inputtype=date-in-Internet-Explorer-%28IE%29-9-and-10.aspx
BTW,这两个HTML在两个浏览器中都是相同的,不同之处在于它的呈现方式。答案 1 :(得分:1)
你是如何出售视图模型属性的?如果您使用@ Html.EditorFor,它将输出输入类型=&#34;日期&#34;,非html5兼容的旧浏览器和IE不支持。在这里查看caniuse,查看跨浏览器的日期和时间输入字段兼容性。 我建议使用Jquery date picker