MVC4条件必需注释

时间:2012-11-01 22:31:03

标签: asp.net-mvc

我有一个通过数据注释设置为必需的属性。这对于创建表单非常适用,但我想在编辑表单中创建不需要的属性。我怎么能这样做呢?

1 个答案:

答案 0 :(得分: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类。

<强> Create.cshtml

@model CreateCustomer

<强> Edit.cshtml

@model EditCustomer