2010-02-14 105 views
2

在Django中/ Python的,如果我有以下模型ASP.NET视图模型替代

class Model1: 
    id = char field 
    name = char field 
    creation_time = datetime field 

我可以创建一个形式(视图模型)像下面

class Model1Form(Model1): 
    exclude = {'id', 'creation_time'} 

我然后将其传递到一个视图/模板,它会忽略id/creation_time

在这种情况下,不会为id和creation_time运行验证。我会稍后在我的代码中设置它们并保存它。

在ASP.NET MVC(使用数据注释或其他任何)来排除一个像这样的字段(不使用单独的视图模型)的方式吗?我正在使用ADO.NET实体。

+0

这样 - 您的视图模型是紧耦合与域模型,你失去它的价值。 – 2010-02-16 10:36:05

回答

3
[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Create([Bind(Exclude="Id")]Product productToCreate) // <--- 
{ 
    if (!ModelState.IsValid) 
     return View(); 

    try 
    { 
     _dataModel.AddToProductSet(productToCreate); 
     _dataModel.SaveChanges(); 

     return RedirectToAction("Index"); 
    } 
    catch 
    { 
     return View(); 
    } 
}