2010-02-14 2 views
2

В Django/Python, если я имел следующую модельASP.NET ViewModel Alternative

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

Я могу создать форму (модель представления), как следующий

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

Я затем передать его в view/template, и он будет игнорировать id/creation_time

В этом случае проверка подлинности id и create_time не будет выполнена. Я бы установил их позже в своем коде и сохранил его.

Есть ли какой-нибудь способ в ASP.NET MVC (используя аннотации данных или что-то еще), чтобы исключить такое поле (без использования отдельной модели представления)? Я использую объекты ADO.NET.

+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(); 
    } 
}