0

たとえば、ID (int)、名前 (string)、およびアクティブ (bool) を持つ 3 つのモデルがあります。同じプロパティを持つこれらのモデルに 1 つのビューだけを使用することは可能ですか? ジェネリックオブジェクトのようなテクニック?継承 ?同じ HTML コードで複数のビューを記述しないようにするためです。

4

3 に答える 3

2

ViewModelを作成できます。

サンプル:

public class CustomerViewModel
{
   public int Id { get; set; }
   public string Name { get; set; }
   public bool Active { get; set; }
}

そして、次のようなタイプの別の ViewModel を作成します。

public class CustomersViewModel
{
    public CustomerViewModel Customer1 { get; set; }
    public CustomerViewModel Customer2 { get; set; }
    public CustomerViewModel Customer3 { get; set; }
}

次のタイプでビューを入力します。

@model CustomersViewModel

または、コレクションを使用してビューを入力するだけです

@model List<CustomerViewModel>

このアンサーを見てください! https://stackoverflow.com/a/694179/316799

于 2013-04-05T17:14:28.437 に答える
1

ビューでは、次のいずれかを行うことができます

  • すべてのモデルに共有基本クラスを指定し、それを使用します。
  • dynamicモデルとして使用
  • ビューを共有 (別のビューに抽出) および特定の部分に分割します。既存のモデル (基本クラス/動的を使用している場合) または特定のモデルのデータに基づいて構築された単に新しいモデルのいずれかで共有サブビューを呼び出すよりも。

継承で共有部分を抽出するサンプル。Html.Partialを使用して共有部分をレンダリングする:

class SharedModel { /* Id,...*/ }
class SpecificModel : SharedModel { /* Special... */ }

特定のビュー:

@model SpecificModel 
@Html.Partial("SharedView", Model)
<div>@Model.Special</div>

共有ビュー:

@model SharedModel 
<div>@Model.Id</div>

補足:ビュー名がアクション名と一致しない場合、ビューを使用して結果を返すときにビュー名を指定できます。

return View("MySharedView", model);
于 2013-04-05T17:14:53.697 に答える
0

ASP.NET MVC4 では、ビューのモデルを定義しない可能性があります。これは、モデルの定義を空のままにし (@model MyNamespace.MyClass を使用しないでください)、モデルとして自動的に「動的」を使用することを意味します。

こんにちはクリスチャン

于 2013-04-05T17:55:57.633 に答える