@Html.EditorForModel()
すべてのビューでヘルパーを使用します。
私のモデルで 2 つのフィールドをスキップしたいという要望がありますが、このビューでのみ、もう一方のビューでは通常どおりこれらのフィールドを表示し続ける必要があります。
このビューでのみこれら 2 つのフィールドをスキップするにはどうすればよいですか?
@Html.EditorForModel()
すべてのビューでヘルパーを使用します。
私のモデルで 2 つのフィールドをスキップしたいという要望がありますが、このビューでのみ、もう一方のビューでは通常どおりこれらのフィールドを表示し続ける必要があります。
このビューでのみこれら 2 つのフィールドをスキップするにはどうすればよいですか?
属性を使用し[ScaffoldColumn(false)]
ます。
例えば
public class Person {
[ScaffoldColumn(false)]
public int PersonID { get; set; }
...
ソリューションと例のソース: Pro ASP.NET MVC 3 Framework, Third Edition
デフォルトの動作から逸脱したいビューのビューモデルを作成することをお勧めします。
補足: 懸念事項を分離し、各ビューの動作を制御しやすくなるため、ビューごとにビューモデルを作成することをお勧めします。
ともかく...
たとえば、あなたのモデルが
class Herps {
public string Name { get; set; }
public int SecretToSomePeople { get; set; }
}
ビューの1つに表示したくない場合はSecretToSomePeople
、含まれていないビューモデルを作成しますSecretToSomePeople
class Herps {
public string Name { get; set; }
}
それを目的のビューのモデルとして使用します。ただし、実際のモデルとの間でコピーすることを確認してください。
厳密に言えば、フィールドを表示したくない場合は、モデル上にあるべきではありません。これは、モデルがビューに必要なデータを正確に保持するためのポイントです。