1

私は非常に奇妙な問題を抱えています

私はviewModelを持っています:

public class ServiceView
{
    [Required]
    [Display(Name = "Titre de l' annonce")]
    public string NomService { get; set; }

    [Required]
    [Display(Name = "Description")]
    public string DescriptionService { get; set; }

    [Display(Name = "Adresse")]
    public string AdresseService { get; set; }

    [Display(Name = "Le code postal")]
    public int CodePostalService { get; set; }

}

そして私のViewModelにぴったりのビュー:

@model MeilleurPresta.Models.ViewModel.ServiceView

@{
    ViewBag.Title = "Déposer une offre";
}

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>


<div class="grid_23" id="body">

    <h3 style="padding-left: 50px"> Déposer une offre de Service </h3>

    <div style="margin-left: 50px">
        @using (Html.BeginForm()) {

            @Html.ValidationSummary(true)

            <div class="editor-label">
                @Html.LabelFor(model => model.NomService)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.NomService)
                @Html.ValidationMessageFor(model => model.NomService)
            </div>

            <div class="editor-label">
                @Html.LabelFor(model => model.DescriptionService)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.DescriptionService)
                @Html.ValidationMessageFor(model => model.DescriptionService)
            </div>

            <div class="editor-label">
                @Html.LabelFor(model => model.AdresseService)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.AdresseService)
                @Html.ValidationMessageFor(model => model.AdresseService)
            </div>

            <div class="editor-label">
                @Html.LabelFor(model => model.CodePostalService)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.CodePostalService)
                @Html.ValidationMessageFor(model => model.CodePostalService)
            </div>

            <p>
                <input type="submit" value="Create" />
            </p>
        }
    </div>
</div>

私のコントローラー:

    public ActionResult Index()
    {
        return View();
    }

特別なことは何もありませんが、フォームを送信すると、クライアントの検証時に、フィールド:Le code postalが必須であることが示されますが、ViewModelにはありません。

私はhtmlソースコードを調べます。それはdata-val-requiredクラスを生成しますが、私のViewModelにはrequire属性はありません。

問題はどこから来るのでしょうか?

ありがとう

4

1 に答える 1

1

intはnull許容ではないため、デフォルトで必須とマークされています。intをintに設定することもできますか?null許容にするか、これをapplication_startに追加して、デフォルトの動作を変更できます...

DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;
于 2012-04-21T03:29:57.510 に答える