0

データ注釈を介して必須に設定されているプロパティがあります。これは作成フォームでは問題なく機能しますが、編集フォームではプロパティを不要にしたいと考えています。どうすればそれを行うことができますか?

4

1 に答える 1

2

作成ビューと編集ビュー用に個別のビュー モデルを作成できます。共通のプロパティを共通のクラスに保持し、その共通のクラスからこれら 2 つのビュー モデルを継承できます。

public class CustomerViewModel
{      
  public string Name { set;get;}      
  public string Location { set;get;}      
}
public class CreateCustomer :CustomerViewModel
{
  [Required]
  public string LastJobTitle { set;get;}
}
public class EditCustomer :CustomerViewModel
{  
  public string LastJobTitle { set;get;}
}

そして、これらを Action メソッドで次のように使用できます

public ActionResult Create()
{
  var createVM=new CreateCustomer();
  return View(createVM);
}
public ActionResult Edit(int id)
{
  var editVM=new EditCustomer();
  var customerModel=repositary.GetCustomer(id);
  editVM.LastJobTitle=customerModel.LastJobTitle;
  //set other properties also
  return View(createVM);
}

したがって、作成ビューはクラスに強く型付けされCreateCustomer、編集ビューはクラスに強く型付けされEditCustomerます。

作成.cshtml

@model CreateCustomer

Edit.cshtml

@model EditCustomer
于 2012-11-01T22:45:43.973 に答える