Связывание Asp.net MVC - PullRequest
       1

Связывание Asp.net MVC

0 голосов
/ 30 июля 2010

Если, например, у вас есть класс Car, и этот класс Car содержит тип автомобиля, который отражается таблицей в базе данных. Как заставить MVC привязываться к типу автомобиля при создании нового автомобиля?

public class Car  
{  
public string Name { get; set; }  
public CarType Type { get; set; }  
}

public class CarType   
{  
public int CarTypeId { get; set; }  
public string Name { get; set; }  
}

public class CarViewModel  
{   
 public Car MyCar { get; set; }  
 public SelectList Types { get; set; }  
}

..... inside my controller

public ActionResult Create()  
{  
 return View(new CarViewModel { Car = new Car(), Types = new SelectList(repo.GetCarTypes(), "CarTypeId", "Name") });  
}  

[HttpPost]  
public ActionResult Create(Car myCar)  
{   
 //hopefully have bound correctly  
 repo.Add(car);  
  repo.Save();  
}

Что мне нужно, чтобы объект Car мог правильно связываться?

Спасибо!

Ответы [ 2 ]

1 голос
/ 30 июля 2010

вот что сработало для меня:

<%= Html.DropDownList( "Type.CarTypeId", Model.Types ) %>

и если вы редактируете автомобиль, вам нужно будет установить выбранное значение при создании списка выбора:

Types = new SelectList(repo.GetCarTypes(), "CarTypeId", "Name", car.Type.CarTypeId ) 
1 голос
/ 30 июля 2010

Я думаю, что связующее должно обрабатывать что-то вроде следующего:

<input name="car.name" value="" />
<select name="car.type.cartypeid">
<% foreach (var item in Model.Types) { %>
<option name="car.type.carttypeid" value="<%:item.cartypeid%>"><$:item.name%></>
<% } %>
</select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...