HTML 部署的和本地的输出不同
HTML output differs between deployed and local
在我的 Person
模型中我得到了生日 属性:
[DisplayName("Date of Birth")]
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
[DataType(DataType.Date)]
public DateTime BirthDate { get; set; }
在“编辑”视图中,我显示了出生日期输入字段:
<div class="form-group">
@Html.LabelFor(model => model.BirthDate, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.BirthDate, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.BirthDate, "", new { @class = "text-danger" })
</div>
</div>
在本地主机上它产生 HTML:
<input class="form-control text-box single-line valid" data-val="true" data-val-date="The field Date of Birth must be a date." data-val-required="Pole Date of Birth jest wymagane." id="BirthDate" name="BirthDate" type="date" value="2014-10-02">
并且该字段的值在页面加载后显示在浏览器中:
我发布了我的应用程序,但生成的 HTML 略有不同。它不包含单词 valid
并且 value
格式不同:"2/5/2015"
而不是 "2014-10-02"
。
<input class="form-control text-box single-line" data-val="true" data-val-date="The field Date of Birth must be a date." data-val-required="The Date of Birth field is required." id="BirthDate" name="BirthDate" type="date" value="2/5/2015">
这导致在我通过日期选择器设置之前,日期不会显示在输入字段中。
我希望它的行为方式与本地部署的应用程序相同。
我在波兰,该应用程序已部署到 myasp.net 服务器,我敢打赌这些服务器位于盎格鲁撒克逊国家,日期格式不同。这可能是个问题吗?
我认为你应该在你的 webProject 中手动设置你的文化。这样,将不会应用部署服务器上的区域性设置。
web.config
<globalization uiCulture="pl" culture="pl-PL" />
见MSDN - How to: Set the Culture and UI Culture for ASP.NET Web Page Globalization
如果您担心项目的全球化,您也可以更改单个页面的文化
yourPage.aspx
<%@ Page UICulture="pl" Culture="pl-PL" %>
如果您不这样做,您也可以设置一个 自定义 dataFormatString 而不是指向适用于 cultureSetting 的标准格式字符串。
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime BirthDate { get; set; }
在我的 Person
模型中我得到了生日 属性:
[DisplayName("Date of Birth")]
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
[DataType(DataType.Date)]
public DateTime BirthDate { get; set; }
在“编辑”视图中,我显示了出生日期输入字段:
<div class="form-group">
@Html.LabelFor(model => model.BirthDate, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.BirthDate, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.BirthDate, "", new { @class = "text-danger" })
</div>
</div>
在本地主机上它产生 HTML:
<input class="form-control text-box single-line valid" data-val="true" data-val-date="The field Date of Birth must be a date." data-val-required="Pole Date of Birth jest wymagane." id="BirthDate" name="BirthDate" type="date" value="2014-10-02">
并且该字段的值在页面加载后显示在浏览器中:
我发布了我的应用程序,但生成的 HTML 略有不同。它不包含单词 valid
并且 value
格式不同:"2/5/2015"
而不是 "2014-10-02"
。
<input class="form-control text-box single-line" data-val="true" data-val-date="The field Date of Birth must be a date." data-val-required="The Date of Birth field is required." id="BirthDate" name="BirthDate" type="date" value="2/5/2015">
这导致在我通过日期选择器设置之前,日期不会显示在输入字段中。
我希望它的行为方式与本地部署的应用程序相同。
我在波兰,该应用程序已部署到 myasp.net 服务器,我敢打赌这些服务器位于盎格鲁撒克逊国家,日期格式不同。这可能是个问题吗?
我认为你应该在你的 webProject 中手动设置你的文化。这样,将不会应用部署服务器上的区域性设置。
web.config
<globalization uiCulture="pl" culture="pl-PL" />
见MSDN - How to: Set the Culture and UI Culture for ASP.NET Web Page Globalization
如果您担心项目的全球化,您也可以更改单个页面的文化
yourPage.aspx
<%@ Page UICulture="pl" Culture="pl-PL" %>
如果您不这样做,您也可以设置一个 自定义 dataFormatString 而不是指向适用于 cultureSetting 的标准格式字符串。
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime BirthDate { get; set; }