gpt4 book ai didi

c# - 如何在 asp .net mvc 2 中对不直接属于我的模型的对象使用 DisplayFor()?

转载 作者:太空宇宙 更新时间:2023-11-03 14:27:39 25 4
gpt4 key购买 nike

我确定我在这里遗漏了一些非常简单的东西。我创建了一个自定义日期时间显示模板。使用时效果很好:

<%= Html.DisplayFor(x=>x.DateTimeProperty) %>

但是,我有一种情况,我在部分控件内的 for 循环中迭代模型中的对象。我想要一个 DateTime 属性来使用显示模板,但我不知道如何指示它这样做。该属性应该是 DateTime。看起来像:

 <% foreach (var item in Model) { %>
<%= Html.Encode(item.DateTimeProperty) %>
<% } %>

由于这种结构,我无法调用 Html.DisplayFor(...),但我希望所有 DateTime 属性都使用我的 DateTime 显示模板。

我已经尝试通过 DataAnotations 添加 UIHint,但这似乎没有用。

我该怎么做?

最佳答案

并不是说这个问题有很多观点,但我找到了答案并想我会发布以防有人好奇。

解决方案很简单:

<%= Html.DisplayFor(x=>item.ReviewDate, "DateTime") %>

我的自定义显示模板(名为:DateTime)定义为:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<DateTime?>" %>
<%
string value = (Model.HasValue ? Model.Value.ToShortDateString() : "");
%>
<%= Html.Encode(value) %>

我想我没有意识到当您声明 lambda 时,您根本不必使用“=>”左侧的变量。我一直认为这是强制性的。

关于c# - 如何在 asp .net mvc 2 中对不直接属于我的模型的对象使用 DisplayFor()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3460649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com