Я недавно изменил вид на сообщение своего контроллер объекта JSON, а не FormCollection.модульного тестирования метода UpdateModel в рамках MVC 3.0
Для того, чтобы получить модульный тест для работы этого контроллера, мы устанавливаем поставщика 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
});
}
Заранее спасибо.
Я не совсем понимаю, почему вы вызываете UpdateModel, когда у вас уже есть все значения, необходимые для привязки модели к объекту «model» в параметре действия. – 2010-12-06 22:10:08
Спасибо, что указали, что Брэд. Глубокий надзор с нашей стороны значительно увеличил сложность наших тестов. – Jesse 2010-12-07 01:12:29