ASP.NET ViewModel替代方案

时间:2010-02-14 07:06:02

标签: c# asp.net-mvc entity-framework data-annotations

在Django / Python中,如果我有以下模型

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实体。

1 个答案:

答案 0 :(得分: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();   
    }   
}