【发布时间】:2012-06-15 20:12:17
【问题描述】:
我正在尝试处理在 ASP.NET MVC3 WinGrid 中呈现时可能为空的 DateTime 的情况。尝试设置 WebGridColumn 时出现错误。我有一个正在工作,一个没有。正在工作的想法较少,因为 html 是在辅助函数中生成的。我无法弄清楚为什么理想的那个不起作用。
这是一个有效的方法:
$gridSummary.Column("OngoingDate",
header: "Ongoing",
format: Html.DateTimeActionLink,
style: "ongoingDate")
public static object DateTimeActionLink(this HtmlHelper htmlHelper, dynamic item)
{
DateTime? linkDateTime = item.OngoingDate;
if (linkDateTime != null && linkDateTime.HasValue)
{
var x = linkDateTime.Value.ToString("MM/dd/yyyy");
return LinkExtensions.ActionLink(htmlHelper, x, "Edit", "MdsAsmtSectionQuestions", new { mdsId = item.OngoingId }, null);
}
return MvcHtmlString.Empty;
}
这是不工作的一个:
$gridSummary.Column("AssessmentInfo", header: "Open Type | ARD",
format: (item) =>
{
return Html.DateTimeActionLink(
item.AssessmentDate,
"MM/dd/yyyy",
x => Html.ActionLink(item.AssessmentInfo + " | " + x, "Edit", "MdsAsmtSectionQuestions", new { mdsId = item.OngoingId }, null));
},
style: "assessmentInfo")
public static object DateTimeActionLink(this HtmlHelper htmlHelper, dynamic item, string format, Func<string, MvcHtmlString> actionLink)
{
Nullable<DateTime> linkDateTime = item;
if (linkDateTime != null && linkDateTime.HasValue)
return actionLink(linkDateTime.Value.ToString(format));
return MvcHtmlString.Empty;
}
【问题讨论】:
-
我刚刚尝试了以下操作,将参数转换为 DateTime?我得到同样的错误。我是否误解了您发布的链接中的修复? gridSummary.Column("AssessmentInfo", header: "Open Type | ARD", format: (item) => DateTimeActionLink( (DateTime?)item.AssessmentDate, "MM/dd/yyyy", x => Html.ActionLink(item .AssessmentInfo + " | " + x, "编辑", "MdsAsmtSectionQuestions", new { mdsId = item.OngoingId }, null))
标签: c# asp.net-mvc-3 razor lambda webgrid