1

これが私のモデルです

public class SchoolUser
{
    public int schoolId { get; set; }

    public int contact1UserId { get; set; }

    public IEnumerable<DataLayer.salutations> Salutations { get; set; }

    public int departmentId { get; set; }

    public IEnumerable<DataLayer.departments> Departments { get; set; }

    [Required]
    public int roleId { get; set; }

    public IEnumerable<DataLayer.rolesView> roles { get; set; }

これは、deptartmentid ビューのドロップダウンを作成するためのカミソリ コードです。

                <div style="width:75%; display:inline-block; margin-left:5px;">
                    @Html.DropDownListFor(model => model.departmentId, new SelectList(Model.Departments, "deptId", "description"), "")
                    @Html.ValidationMessageFor(model => model.departmentId)
                </div>                    

私たちを際限なく混乱させるのは、部門が選択されていない場合、かみそりの検証が不平を言うことです。しかし、学校モデルには [必須] 属性がありませんでした。

"departmentId フィールドは必須です。"

私が見るページのソースを見る

 <select data-val="true" data-val-number="The field departmentId must be a number." data-val-required="The departmentId field is required." id="departmentId" name="departmentId"><option value=""></option>
<option value="30">English</option>
</select>

何らかの理由で、モデルに [required] またはその他の制約属性がなくても、このフィールドに入力する必要があることを Razor ビュー エンジンが「決定」しました。

4

1 に答える 1

10

null 可能ではありません。intに変更する必要がありますか?.

于 2013-01-18T16:55:19.710 に答える