我一直和下面的Lynda.com教程一起学习MVC 4和Razor。我被困在试图让时间只显示时间,分钟,然后AM/PM。到目前为止,屏幕仍然包括秒(如下所示):

我试着格式化我的约会对象,比如这篇关于DateTime的文章,但没有成功。现在,在控制器部分"AuctionsController.vb",类似于这个职位中,我的函数中有了以下代码
Function Auction() As ActionResult
Dim mainauction = New MVCAuction3.Models.Auctions
Dim ts As New TimeSpan(10, 0, 0)
mainauction.Title = "Example Auction"
mainauction.Description = "This is an example Auction"
mainauction.StartTime = DateTime.Now + ts
mainauction.EndTime = DateTime.Now.AddDays(7) + ts
mainauction.StartPrice = 1.0
mainauction.CurrentPrice = Nothing
ViewData("Auction") = mainauction
Return View()
End FunctionRazor就是这样显示视图“Auction.vbhtml”中的内容的:
<p>Start Time: @auction.StartTime.ToString() </p>
<p>End Time: @auction.EndTime.ToString()</p>
<p>Starting Price: @FormatCurrency(auction.StartPrice.ToString())</p>编辑:
下面是我在模态文件中声明时间变量的方式:
Private Property x_StartTime As DateTime
Private Property x_EndTime As DateTime
Public Property StartTime() As DateTime
Get
Return x_StartTime
End Get
Set(value As DateTime)
x_StartTime = value
End Set
End Property
Public Property EndTime() As DateTime
Get
Return x_EndTime
End Get
Set(value As DateTime)
x_EndTime = value
End Set
End Property我还试图让它从"Auction.vhtml“视图中得到以下内容,不幸的是,这给了服务器错误,指示”输入字符串格式不正确“。
<p>Start Time: @auction.StartTime.ToString("g") </p>
<p>End Time: @auction.EndTime.ToString("g")</p>
<p>Starting Price: @FormatCurrency(auction.StartPrice.ToString())</p>在没有格式化时间的Razor或MVC代码中,我做错了什么?任何帮助都是非常感谢的!
发布于 2013-09-16 20:52:29
您应该看看MSDN上的自定义日期和时间格式字符串。基本上,您可以将格式字符串传递给ToString对象的DateTime方法。
这里有一个省略秒的示例:
auction.StartTime.ToString("M/d/yyyy hh:mm tt")发布于 2013-09-16 20:58:32
我强烈建议查看DisplayFormat (MSDN)属性。将其附加到您的模型StartTime属性中,如下所示
[DisplayFormat(ApplyFormatInEditMode=true, DataFormatString = "{0:M/d/yyyy hh:mm tt}")]
public DateTime StartTime {get;set;}然后通过DisplayFor函数输出视图中的信息:
@Html.DisplayFor(x=> x.StartTime)https://stackoverflow.com/questions/18837042
复制相似问题