0

ASP.NET MVC アーキテクチャについては、まだ少し初心者です。非表示の入力を含むデータの編集ページがあります。私のページをテストした後、「保存」ボタンは何もしませんでした.いくつかの調査の結果、それはクライアント側の検証の問題であることがわかりました.

ページ内の次の行にコメントした後:

 @*@Html.HiddenFor(model => model.ID)*@

(ID は GUID です)、ページが検証され、投稿されました。

私が思い出す限り、足場はこのコードを私の視野に入れました。ID フィールドがコントローラーに適切に送り返されるようにこれを修正する方法を知る必要があり、検証されなかった理由を知りたいと思っていました。

ここに私のビューのコードがあります:

@using (Html.BeginForm()) 
{
    @Html.ValidationSummary(true)

    <fieldset>

        <div class="object_basics">
      @Html.HiddenFor(model => model.ID)

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


       <p>
            <input type="submit" value="Save" />
        </p>
    </fieldset>

}
4

3 に答える 3

1

IDの検証メッセージを追加しようとしましたか?

@Html.ValidationMessageFor(model => model.ID)
于 2013-01-18T15:14:26.833 に答える
1

jQuery 検証はすべての非表示タグを無視するため、非表示フィールドのクライアント側検証が機能しません。目標を達成するには、クラスを
定義する必要があります。HiddenRequiredValidator

この問題を解決するための解決策をここで読むことができます

于 2013-10-12T08:35:14.143 に答える
0

ビューで、次から更新します。

@using (Html.BeginForm()) 

@using (Html.BeginForm(new{ID = model.ID})) 

隠し要素 [@Html.HiddenFor(model => model.ID)] を削除します。

controllerで、以下のようにアクション プロパティを更新します。

public ActionResult YourActionName(string ID, string Title)

うまくいけば、これはあなたの質問に答えます。

乾杯、ダニー

于 2013-01-17T00:30:45.897 に答える