У меня есть модель, содержащая продукт и SelectList категорий.Проверка исключения ViewModel throws
public class AdFormViewModel
{
public AmericanAds.Model.Ad Ad { get; set; }
public SelectList Categories { get; set; }
public AdFormViewModel(AmericanAds.Model.Ad ad, SelectList categories)
{
Ad = ad;
Categories = categories;
}
}
При добавлении нового продукта, если проверка не удалась для раскрывающегося списка категорий, я получаю ниже сообщения об ошибке.
Элемент модели, переданный в словарь, имеет тип «AmericanAds.Model.Ad», но для этого словаря требуется элемент модели типа «AmericanAds.Controllers.AdFormViewModel».
Это контроллер для создания действия.
public ActionResult Create()
{
AdFormViewModel data = new AdFormViewModel(
null,
new SelectList(_repository.CategoryList().ToList(), "CategoryId", "CategoryName")
);
return View(data);
}
//
// POST: /Ad/Create
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(Ad ad)
{
if (ModelState.IsValid)
{
try
{
_repository.AddAd(ad);
return RedirectToAction("Index");
}
catch
{
return View(ad);
}
}
else
{
return View(ad);
}
}
Что мне не хватает?
Как вы можете сказать, я очень новичок в ASP.Net MVC.
Спасибо!
Является ли это asp.net-mvc 2? В противном случае, какой механизм проверки выполняется? Можете ли вы показать нам некоторую разметку вида и действие, где это не удается? –
это mvc 1.0. Я добавлю код на сообщение –
Из любопытства, как может валидация не сбрасываться в этом сценарии? Случается ли это иногда и иногда терпит неудачу? Если да, то какие входы каждый раз? Всегда ли это происходит? Если да, то на какой строке? –