1

こんにちは、Editorfor() を使用して、ビュー モデルをコントローラーに送信する小さなフォームを作成しています。Editorfor() は、モデルの入力フィールドを適切に出力しますが、主キー フィールドも出力します。だから私は主キーフィールドを非表示にしたい。

@Html.EditorFor(m=>m.viewmodel)

これは私が持っているマークアップです。

@Html.HiddenFor(m => m.viewmodel.Id);
@Html.EditorFor(m=>m.viewmodel)

これを試しましたが、うまくいきません。モデルに直接アプローチしたかったのですが、EF Designer を使用しているため、どこから始めればよいかわかりません。アドバイスをお願いします。

4

3 に答える 3

4

これを試して:

[HiddenInput(DisplayValue = false)]
public int ProductID { get; set; 
于 2013-10-31T22:16:08.370 に答える
0

キー属性のフィールドを作成しないでください。チェックするフィールドがなければ、検証に文句はありません。後で、コントローラーの主キーの値を指定できます。

于 2016-06-14T12:07:50.257 に答える
0

カスタム エディター テンプレートを使用します。例えば:

MyViewModel.cshtml (~/Views/Shared/EditorTemplates フォルダーに保存され、部分ビューのように構造化されています):

@model MyViewModel
@Html.HiddenFor(m => m.Id)
@Html.EditorFor(m => m.Property1)
@Html.TextboxFor(m => m.Property2)
@Html.TextAreaFor(m => m.Property3)
// Whatever else you want in the template

次に、それを使用する必要があるモデルのビューで EditorFor を呼び出すだけで、MVC はカスタム テンプレートを使用することを認識します。

@Html.EditorFor(m => m.MyViewModel)

タイプの名前に基づいていないカスタム表示テンプレートを使用するには、次の[UIHint]属性を使用することもできます: http://www.growingwiththeweb.com/2012/12/aspnet-mvc-display-and- editor-templates.html

于 2013-10-31T22:11:59.563 に答える