12

@Html.EditorForModel()すべてのビューでヘルパーを使用します。

私のモデルで 2 つのフィールドをスキップしたいという要望がありますが、このビューでのみ、もう一方のビューでは通常どおりこれらのフィールドを表示し続ける必要があります。

このビューでのみこれら 2 つのフィールドをスキップするにはどうすればよいですか?

4

3 に答える 3

32

属性を使用し[ScaffoldColumn(false)]ます。

例えば

public class Person {
    [ScaffoldColumn(false)]
    public int PersonID { get; set; }
    ...

ソリューションと例のソース: Pro ASP.NET MVC 3 Framework, Third Edition

于 2011-09-19T06:54:29.643 に答える
3

デフォルトの動作から逸脱したいビューのビューモデルを作成することをお勧めします。

補足: 懸念事項を分離し、各ビューの動作を制御しやすくなるため、ビューごとにビューモデルを作成することをお勧めします。

ともかく...

たとえば、あなたのモデルが

class Herps {
    public string Name { get; set; }
    public int SecretToSomePeople { get; set; }
}

ビューの1つに表示したくない場合はSecretToSomePeople、含まれていないビューモデルを作成しますSecretToSomePeople

class Herps {
    public string Name { get; set; }
}

それを目的のビューのモデルとして使用します。ただし、実際のモデルとの間でコピーすることを確認してください。

于 2011-07-28T14:46:03.300 に答える
2

厳密に言えば、フィールドを表示したくない場合は、モデル上にあるべきではありません。これは、モデルがビューに必要なデータを正確に保持するためのポイントです。

于 2011-07-28T14:44:55.033 に答える