我正在尝试处理在 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;
}