在MVC 3 C中更改日期时间#
我正在使用带有C#的MVC 3,我在下拉列表中显示日期时遇到问题。 日期显示如下: 4/21/2011 12:00:00 AM,但我只想以这种方式格式化它们: 2011年4月21日 ,这正是我数据库中的格式。
数据库中的日期属性是日期而不是日期时间。
模型中的代码:
[DisplayFormat(DataFormatString = "{mm/dd/yyyy}", ApplyFormatInEditMode=false)] public DateTime? booksDate { get; set; }
控制器看起来像这样:
var booksDates = from dates in db.Books orderby dates.booksDate select new { dates.booksDate}; ViewBag.Dates = BooksDates.Distinct();
最后我的视图中的代码:
Books dates @Html.DropDownList("booksDate", new SelectList(ViewBag.Dates as System.Collections.IEnumerable, "booksDate", "booksDate"), "Select a date")
哪里我错了?
谢谢
您可以尝试使用常规html下拉列表并手动设置html值。 我确信有一种更好的方法,它可能很脏,但它可以完成工作。
控制器:
ViewBag.Dates = BooksDates.Distinct();
视图:
如果我没有完全关闭, DataFormatString
应如下所示:
DataFormatString = "{0:MM/dd/yyyy}"
甚至更简单的使用短日期格式:
DataFormatString="{0:d}"
您可以扩展帮助程序类以在视图中执行该作业。
public static class FormatHelper { public static IHtmlString ToDate( this HtmlHelper helper, DateTime datetime ) { return new HtmlString( datetime.ToShortDateString() ); } }
在视图中:
@Html.ToDate( Model.Date )
别忘了导入名称空间来查看。
就像在控制器中一样:
ViewBag.Date = Convert.ToDateTime(SelectedDate);
在视野中
@Convert.ToDateTime(ViewData["Date"].ToString()).ToShortDateString()
输出如:
2017年3月2日
您可以通过执行以下操作在纯c#上执行此操作:
string date = Convert.ToDateTime(date).ToShortDateString();
如果你使用的是sql,你可以这样做:
select field1, convert(nvarchar(10), field2, 101)
来自哪里//无论如何,
让我解释一下这是什么:
-field2是包含日期的字段。 -nvarchar(10)是您要解除的类型。 这并不重要,因为它是你所回归的类型(转换的结果)。 就像它是一个选择,你不关心这里的数据类型。 它仅用于显示数据。 数字10是你得到的字符串的长度。
-field2:
要转换的字段(带小时的日期)
101:这是风格。 这告诉field2必须只打印月/日/年。
有很多风格,你应该谷歌他们!
我希望它有效。
上述就是C#学习教程:在MVC 3 C中更改日期时间#分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/961691.html