0

私のコントローラーには次のものがあります。

[HttpGet]
public ActionResult Create(int setId)
{
    // create new viewModel
    var model = new CreateCardViewModel() {SetId = setId, Sides = new List<string>(){"Front Side", "Back Side"}};

    return View(model);
}

モデルを構築するために、intをCreateCardViewModelに渡す必要がありますか?それとも、このアプローチは適切ですか?

ViewModelsにはビジネスロジックが含まれていることがよくありますか?

4

2 に答える 2

0

ViewModel にはビジネス ロジックが含まれていません。これらは基本的にビューに出力するためのダミー クラスです。

ViewModel をロードする「適切な」方法があるとは言いませんが、これを行う方法は複数あります。ビューモデルのコンストラクターメソッドでページのデフォルトを個人的にロードし、例のようにコントローラーにページ固有のものをロードします。

また、ページのモデルとして設定された基本ビューモデルも使用し_layoutます。これには、ページのタイトル/メタ情報などを保持します。

例えば

public abstract class BaseViewModel
{
    public string Title {get;set;}

}

public sealed class HomeViewModel : BaseViewModel
{
    public string HomeText {get;set;}
}

正しい方法や間違った方法があるとは思いません。快適だと思うテクニックを使用してください。

于 2013-02-15T03:18:01.460 に答える
0

コンストラクターは、オブジェクトが 1 か所に確実に作成されるようにする場合に役立ちます。これらは、オブジェクトが無効な状態で初期化される状況を回避するのに役立ちます (たとえば、以降の処理に必要なオブジェクト プロパティの 1 つを設定するのを忘れたなど)。ビュー モデルの場合は、出力モデルのコンストラクターを用意することをお勧めします。ただし、パブリック コンストラクターを必要とする MVC ランタイムによって逆シリアル化されるため、入力モデル (アクション メソッドの引数) にコンストラクターを使用することはできません。

于 2013-02-15T10:13:31.913 に答える