DisplayName metadata does not show up on view

大城市里の小女人 提交于 2019-12-02 17:07:36

问题


How will I show the correct DsiplayName on my view considering the following model.

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<Project.Models.RegisterViewModel>" %>

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
    <% using (Html.BeginForm())
       {%>
    <table>
        <tr>
            <td class="label">
                <%: Html.LabelFor(model => model.User.UserPrimaryEmail)%>
            </td>
            <td class="field">
                <%: Html.TextBoxFor(model => model.User.UserPrimaryEmail)%>
            </td>
            <td class="field-error">
                <div class="field-error-msg">
                    <%: Html.ValidationMessageFor(model => model.User.UserPrimaryEmail)%>
                </div>
            </td>
        </tr>
 </table>
</asp:Content>
public class RegisterViewModel
{
    public User User { get; set; }
}


[MetadataType(typeof(UserMetaData))]
public partial class User : UserBase
{
 //Inherits from Generated Class UserBase
 //to set default values here for the constructor

    // Not used except as a source of metadata
    public class UserMetaData
    {

        [Required]
        [DisplayName("Email Login")]
        [DataType(DataType.EmailAddress)]
        [Email(ErrorMessage = "Invalid Email")]
        public string UserPrimaryEmail { get; set; }


    }

}

The form does not display "Email Login" but "UserPrimaryEmail"


回答1:


You View is strongly typed to Project.Models.RegisterViewModel, however you are adding your Data Annotations to the User Object.

Generally you would have:

public class RegisterViewModel
{
    [Required]
    [DisplayName("Email Login")]
    [DataType(DataType.EmailAddress)]
    [Email(ErrorMessage = "Invalid Email")]
    public String Email { get; set; }

    .....
    other properties
}


来源:https://stackoverflow.com/questions/4456867/displayname-metadata-does-not-show-up-on-view

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!