0

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

4

1 回答 1

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

编辑.cshtml

@model EditCustomer
于 2012-11-01T22:45:43.973 回答