ASP.NET数据绑定多种格式

时间:2013-08-23 23:49:06

标签: c# date webforms entity-framework-5

我有一个使用EF 5的ASP.NET 4.5 Web表单站点。

我的数据模型的一个对象是带有DateTime属性的'医疗文件'(其中包括):

public partial class MedFile {
    public System.Guid MedFileId { get; set; }
    public string Name { get; set; }
    public Nullable<System.DateTime> MedDate { get; set; }
    ...
}

这是用于编辑的网络表单的片段:

<asp:ListView ID="MedFilesForm" runat="server" 
    ItemType="MedFile" DataKeyNames="MedFileId" 
    SelectMethod="GetFiles"
    UpdateMethod="UpdateFile">
    ...
    <EditItemTemplate>
        <asp:Label ID="Label1" runat="server" AssociatedControlID="TextBox1">Name</asp:Label>
        <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Name") %>' />

        <asp:Label ID="Label2" runat="server" AssociatedControlID="TextBox2">Data</asp:Label>
        <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("MedDate", "{0:d}") %>' />

        <asp:LinkButton ID="UpdateButton" runat="server"
            CausesValidation="true" CommandName="Update"
        </asp:LinkButton>
    </EditItemTemplate>
</asp:ListView>

注意 UpdateMethod =“UpdateFile” TextBox2 绑定(“MedDate”,“{0:d}”)

最后,这里是代码背后的UpdatedFile:

public void UpdateFile(Guid medFileId) {
    // get the current med file from DB
    MedFile medfile = _cartellaBLL.GetMedFileByFileId(medFileId);
    // update it with values taken from the web form
    TryUpdateModel(medfile);
    // save the updated med file
    if (ModelState.IsValid) {
       _cartellaBLL.UpdateFile(medfile);
    }
    ...
}

众所周知,上面的 TryUpdateModel(medfile)会自动神奇地验证,解析和转换Web表单中的字段,更新传递的medfile变量。

特别是,它根据可能在web.config文件中设置的应用程序文化的日期格式验证并转换TextBox2的值:

<globalization culture="it-IT" uiCulture="it-IT" />

我的问题是,我希望用户能够使用两种可能的格式之一来设置网络表单中的日期:默认文化之一,在我的情况下为dd / MM / yyyy(意大利)和国际yyyy-MM-dd(ISO 8601)。

是否可以指示 TryUpdateModel(TModel)“接受”这两种格式?

0 个答案:

没有答案