【发布时间】:2013-04-12 12:17:28
【问题描述】:
我在 ASP.NET 4.5 Web 窗体 FormView 中有一个 EditItemTemplate。我在 FormView 上设置了 ItemType,所以我使用 DynamicControls 来显示和编辑字段。
<asp:FormView runat="server" ItemType="FooModel">
<EditItemTemplate>
<asp:DynamicControl runat="server" ID="message" DataField="Message" Mode="Edit" />
</EditItemTemplate>
</asp:FormView>
这似乎可以正常工作,直到我在 ItemType 属性上设置 DataType 以使其成为多行,就像这样。
public class FooModel
{
[DataType(DataType.MultilineText)]
public string Message { get; set; }
}
这仍然给了我一个标准的文本输入。有什么想法吗?
我可以通过使用来解决它
<asp:TextBox ID="Message" Text='<%# Bind("Message") %>' runat="server" TextMode="MultiLine" />
...但最好从我的属性的数据类型中推断出来。
谢谢
【问题讨论】:
-
尽管如果我使用 asp:textbox 和 Bind() 来解决它,那么我会丢失其他可以正常工作的数据验证属性,Required,StringLength 等。
标签: webforms data-annotations model-binding asp.net-4.5 asp.net-dynamic-data