【发布时间】:2012-10-04 16:06:32
【问题描述】:
我从 SQL db 中提取日期时间,格式为 hh:mm dd/mm/yyyy
使用 Razor 语法,我可以显示存储在数据库中的日期
@Html.DisplayFor(modelItem => item.Updated)
我希望 Razor 以以下格式显示 dd MMM yyyy 所以我按照另一个 StackOverflow 答案尝试了以下操作:
@Html.DisplayFor(modelItem => item.Updated.ToString("dd MMM yyyy"))
Converting DateTime format using razor
但是这会产生以下错误:
“/”应用程序中的服务器错误。
模板只能用于字段访问、属性访问、 一维数组索引,或单参数自定义索引器 表达式。
描述:执行过程中发生了未处理的异常 当前的网络请求。请查看堆栈跟踪以获取更多信息 有关错误的信息以及它在代码中的来源。
异常详细信息:System.InvalidOperationException:模板可以 仅与字段访问、属性访问、一维数组一起使用 index 或单参数自定义索引器表达式。
来源错误:
第 36 行:第 37 行:第 38 行:
@Html.DisplayFor(modelItem => item.Updated.ToString("dd MMM yyyy")) 第 39 行:第 40 行:
我刚刚开始掌握 ASP.NET 等...我不确定如何创建视图模型来尝试这个示例,因为我首先使用自动生成的 edmx 文件构建 DB:
[DisplayFormat(DataFormatString = "{0:dd MMM yyyy}")]
pubilc DateTime Updated { get; set }
有什么建议吗?
目前这些工作。我要做的就是更改“更新”属性的显示格式。 我的视图文件: http://pastebin.com/Ywn8Z0TV
我的控制器: http://pastebin.com/1jAih6AE
我的模型: http://pastebin.com/UC61QjFZ
更新:对于那些声明应该是 item => item.Updated...
Error 1 A local variable named 'item' cannot be declared in this scope because it would give a different meaning to 'item', which is already used in a 'parent or current' scope to denote something else
【问题讨论】:
-
你的 lambda 表达式都是
modelItem => item.[...]的形式。你不应该在 RHS 上使用modelItem吗? -
您好,modelItem => modelItem 不起作用。 modelItem =>item 是脚手架。它适用于 modelItem => item。我只需要更改显示格式
-
这对我来说听起来非常很奇怪 -
item那时指的是什么变量? -
你能编辑你的帖子并显示
@model,@model使用的类定义吗?脚手架上发生了一些不寻常的事情。 -
@Erik - 我已经通过上面的 pastebin 包含了模型、视图和控制器。谢谢
标签: c# asp.net-mvc razor