ASP.Net MVC 3 更改模型项
本文关键字:模型 Net MVC ASP | 更新日期: 2023-09-27 18:31:05
我想更改 HTML 页面中模型项的内容。我正在以下一个格式保存日期时间,在数据库中:yyyyMMddHHmmss
我想在 HTML 页面中显示下一个格式:dd-MM-yyyy HH-mm-ss
我该怎么做?
<tr>
<td class="labels">
<label>Data/Hora Token Telemóvel:</label>
</td>
<td>
@Html.TextBox("txtBoxNome", @Html.DisplayFor(modelItem => item.cdts_token_phone), new { @readonly = "readonly", @disabled = "disabled"})
</td>
</tr>
如果我理解正确,问题是将数据库中的字符串转换为视图中更合适的字符串(通过视图模型):
您可以在模型中创建一个属性,该属性使用 TryParse 或 TryParseExact 解析您的格式(此处的好建议)。
[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy HH-mm-ss}"]
public DateTime MyDateTime
{
get
{
// should be defined as a constant elsewhere
string pattern = "yyyyMMddHHmmss";
DateTime dt;
if (DateTime.TryParseExact(text, pattern, CultureInfo.InvariantCulture,
DateTimeStyles.None, out dt))
return dt;
// return a value when format is invalid
}
}
DisplayFormat
属性应该可以帮助您以所需的格式直接显示数据。
好的,
我已经在阿列克谢的帮助下完成了。 这是我的解决方案:
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
[DataMemberAttribute()]
public global::System.String cdts_token_phone
{
get
{
return cdtsToDT(_cdts_token_phone);
}
set
{
Oncdts_token_phoneChanging(value);
ReportPropertyChanging("cdts_token_phone");
_cdts_token_phone = StructuralObject.SetValidValue(value, true, "cdts_token_phone");
ReportPropertyChanged("cdts_token_phone");
Oncdts_token_phoneChanged();
}
}
private string cdtsToDT(string cdtsUT)
{
if(string.IsNullOrEmpty(cdtsUT))
return string.Empty;
DateTime _newDT = new DateTime(int.Parse(cdtsUT.Substring(0, 4)), int.Parse(cdtsUT.Substring(4, 2)),
int.Parse(cdtsUT.Substring(6, 2)), int.Parse(cdtsUT.Substring(8, 2)),
int.Parse(cdtsUT.Substring(10, 2)), int.Parse(cdtsUT.Substring(12, 2)));
string cdts = _newDT.ToString("dd-MM-yyyy HH:mm:ss");
return cdts;
}