Я получаю полностью потерянным и запутанным о том, как использовать новый сильно типизированных помощник Html.DropDownListFor на ASP.NET MVC 2.0 R2ASP.NET MVC 2 - Html.DropDownListFor путаница с ViewModel
В View I «м сочинительство:
<%= Html.DropDownListFor(m => m.ParentCategory, new SelectList(Model.Categories, "CategoryId", "Name", Model.ParentCategory), "[ None ]")%>
<%= Html.ValidationMessageFor(m => m.ParentCategory)%>
и мой объект модели таким образом:
public class CategoryForm : FormModelBase
{
public CategoryForm()
{
Categories = new List<Category>();
Categories.Add(new CategoryForm.Category() {
CategoryId = 1,
Name = "CPUs" });
Categories.Add(new CategoryForm.Category() {
CategoryId = 2,
Name = "Memory" });
Categories.Add(new CategoryForm.Category() {
CategoryId = 3,
Name = "Hard drives" });
}
// ...other props, snip... //
public Category ParentCategory { get; set; }
public IList<Category> Categories { get; protected set; }
public class Category
{
public int? CategoryId { get; set; }
public string Name { get; set; }
}
}
проблема заключается в том, что при выборе элемента из списка, скажем, первый пункт, я получаю следующее Валида msgstr "Значение" 1 "неверно."
Так что я изменить его ...
<%= Html.DropDownListFor(m => m.ParentCategory.**CategoryId**,
new SelectList .../ snip ) %>
Теперь он работает, своего рода. Свойство ParentCategory в моей модели ViewModel задано с правильным «CategoryId», но «Name» имеет значение NULL. Мне лучше просто иметь значение null для свойства ParentCategory вместо строго типизированного объекта Category?
Это хороший способ для пользователя DropDownListFor - http://stackoverflow.com/questions/3386998/dropdownlistfor-display-a-simple-list-of-strings – bcahill