0

サーバーにデータを POST するために使用している ViewModel があります。

[MetadataType(typeof(CompanyAdminViewModel))]
public class CompanyAdminViewModel
{
    public Company Company { get; set; }
    public RegisterModel User { get; set; }

    public CompanyAdminViewModel()
    {

    }
}

Company エンティティには子エンティティがあります: Company.CompanyContacts

public class CompanyContact
{
    public int CompanyContactId { get; set; }
    public int JobTitleId { get; set; }
    public int CompanyId { get; set; }
    public string Title { get; set; }
    [Required]
    public string FirstName { get; set; }
    [Required]
    public string LastName { get; set; }
    public Nullable<DateTime> BirthDate { get; set; }
    public string Gender { get; set; }
    [Required]
    public string Phone { get; set; }
    public string Fax { get; set; }
    public string Extension { get; set; }
    [Required]
    public string Email { get; set; }
    public Nullable<DateTime> HireDate { get; set; }
    public virtual Company Company { get; set; }

    public virtual JobTitle JobTitle { get; set; }

    public bool IsActive { get; set; }
}

pagesource を表示すると、モデル プロパティの data-* 属性が正しくレンダリングされます。

<div class="editor-label">
                <label for="FirstName">FirstName</label>
            </div>
            <div class="editor-field">
                <input class="text-box single-line" data-val="true" data-val-required="The FirstName field is required." id="FirstName" name="FirstName" type="text" value="" />
                <span class="field-validation-valid" data-valmsg-for="FirstName" data-valmsg-replace="true"></span>
            </div>

            <div class="editor-label">
                <label for="LastName">LastName</label>
            </div>
            <div class="editor-field">
                <input class="text-box single-line" data-val="true" data-val-required="The LastName field is required." id="LastName" name="LastName" type="text" value="" />
                <span class="field-validation-valid" data-valmsg-for="LastName" data-valmsg-replace="true"></span>
            </div>

フォームを POST すると、パスワード プロパティのみが検証エラーを表示します。Model.IsValid を確認すると、失敗したすべての検証がコレクションに含まれています...

では、POST を試みた後、フォームに一部の検証エラーしか表示されないのはなぜでしょうか?

4

1 に答える 1

1

フォームに関するすべてを追加すると便利です;)

私の質問ですが、それは提出されますか?いくつかのフィールドに必要なフィルターがありますが、メッセージはありません(したがって、おそらくエラーは表示されませんが、送信されません)。

これらを試しましたか:

@Html.ValidationSummary()

そして(検証したいフィールドの場合:

@Html.ValidationMessageFor(m => m.FirstName)
于 2013-02-01T16:00:21.487 に答える