我有一个通过数据注释设置为必需的属性。这对于创建表单非常有效,但我想让该属性在编辑表单中不需要。我该怎么做呢?
问问题
648 次
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 回答