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