Обновлено
Недавно я изменил представление, чтобы публиковать на своем контроллере объект json, а не форму коллекции.
Чтобы заставить модульный тест для этого контроллера работать, мы устанавливаем провайдер formvalue на объект словаря, чтобы метод UpdateModel не выбрасывал nre.
Полученный ниже модульный тест, однако, просто не подходит для правильной работы.Любое понимание того, как переделать это, будет с благодарностью.
[HttpPost]
public ActionResult ThemeContent(content model)
{
if (ModelState.IsValid)
{
var content = _contentRepository.GetContent(model.id);
if (content == null)
{
content = new content();
UpdateModel(content);
_contentRepository.Add(content);
_contentRepository.Save();
}
else
{
UpdateModel(content);
_contentRepository.Save();
}
return Json(new
{
redirectUrl = Url.Action("index", "success", new {id = content.id}),
isRedirect = true
});
}
string errorMessage = "{";
foreach (var key in ModelState.Keys)
{
var error = ModelState[key].Errors.FirstOrDefault();
if (error != null)
{
if (errorMessage != "{")
{
errorMessage += ",";
}
errorMessage += (char) 34 + "#" + key + (char) 34 + ":" + (char) 34 + error.ErrorMessage + (char) 34;
}
}
errorMessage += "}";
return Json(new
{
Message = errorMessage,
isRedirect = false
});
}
Заранее спасибо.