0

データベースに送信するフォームをロードするモーダル ポップアップ ダイアログ ボックスがあります。すべてのフィールドが入力されている場合、フォームは正常に機能します。フィールドを空白のままにして [作成] ボタンをクリックすると、検証が開始されますが、開始されません。次のエラーが表示されます: 1 つ以上のエンティティの検証に失敗しました。詳細については、「EntityValidationErrors」プロパティを参照してください。今、私はエラーが何であるかを知っています。フィールドの値は null であり、データベースに送信するために null にすることはできません。また、ModelState も false です。これは私のモデルです:

using System.ComponentModel.DataAnnotations;
using MVC_CSAlerts.Models;


namespace MVC_CSAlerts.Models
 {
using System;
using System.Collections.Generic;
using System.ComponentModel;

public partial class csAlert
{
    public int AlertID { get; set; }

     [Required(AllowEmptyStrings = false, ErrorMessage = "Must Enter a Route")]
    public string Routes { get; set; }

    [Required(AllowEmptyStrings = false, ErrorMessage = "Must Enter an Issue")]
    public string Issue { get; set; }

    public string Detour { get; set; }

    [DisplayName("Date")]
    [DataType(DataType.DateTime)]
    [Required]
    public Nullable<System.DateTime> DateEntered { get; set; }

    [Required]
    [DisplayName("Entered By")]
    public string EnteredBy { get; set; }

    public Nullable<int> Count { get; set; }

    [DisplayName("Send Email")]
    public string SendEmail { get; set; }

    [DisplayName("Is this a child alert")]
    public string IsChildAlert { get; set; }
}
}

これが私の見解です

  @model MVC_CSAlerts.Models.csAlert


  @{
ViewBag.Title = "Create";
 }
 <h2>Create New Alert</h2>

  <script type="text/javascript">
        $(document).ready(function () {
            // We will test DataPicker
            $('#DateEntered').datepicker();
            // We will test tabs
            $(function () {
                $(document).tooltip();
            });
        });

    </script>

  @using (Ajax.BeginForm("Create","Alerts",new AjaxOptions()))
  {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)


<fieldset>
    <legend>New Alert</legend>


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

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

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

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

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

    <div class="editor-label">
        @Html.LabelFor(model => model.SendEmail)
    </div>
    <div class="editor-field">
                          @Html.DropDownListFor(model => model.SendEmail, new          


  SelectList(new List<object>{


 new{ value = "Y", text="Yes"},


  new{ value = "N",text="No"}
                                                                                 },


  "value",


  "text",
                                                                                 "Y"))


     @*                  @Html.EditorFor(model => model.SendEmail)*@
        @Html.ValidationMessageFor(model => model.SendEmail)
    </div>

    <div class="editor-label">
        @Html.LabelFor(model => model.IsChildAlert)
    </div>        <div class="editor-field>   @Html.DropDownListFor(model =>      



   model.IsChildAlert, new SelectList(new List<object>{


 new{ value = "Y", text="Yes"},


  new{ value = "N",text="No"}
                                                             },


 "value",


 "text",
                                                                                 "Y"))




     @*            @Html.EditorFor(model => model.IsChildAlert)*@
        @Html.ValidationMessageFor(model => model.IsChildAlert)
    </div>

    <p>
        <input type="submit" value="Create New Alert" />
    </p>
</fieldset>
  }


  @section Scripts {

  @Scripts.Render("~/bundles/jqueryval")

 }

クライアント側の検証をロードするにはどうすればよいですか? モーダル ウィンドウで JavaScript の検証を行う必要がありますか?

ありがとう

4

1 に答える 1

0

your:@Scripts.Render("~/bundles/jqueryval")Parent Viewではなく に移動してみてくださいModal View

于 2013-10-27T08:11:03.910 に答える