Я хочу проверить данные внутри объекта «item», прежде чем перенаправить его на другое действие.Модуль MVQ moq проверяет объект перед RedirecToAction()
public ActionResult WebPageEdit(WebPage item, FormCollection form)
{
if (ModelState.IsValid)
{
item.Description = Utils.CrossSiteScriptingAttackCheck(item.Description);
item.Content = Utils.CrossSiteScriptingAttackCheck(item.Content);
item.Title = item.Title.Trim();
item.DateUpdated = DateTime.Now;
// Other logic stuff here
webPagesRepository.Save(item);
return RedirectToAction("WebPageList");
}
Вот мой метод испытания:
[Test]
public void Admin_WebPageEdit_Save()
{
var controller = new AdminController();
controller.webPagesRepository = DataMock.WebPageDataInit();
controller.categoriesRepository = DataMock.WebPageCategoryDataInit();
FormCollection form = DataMock.CreateWebPageFormCollection();
RedirectToRouteResult actionResult = (RedirectToRouteResult)controller.WebPageEdit(webPagesRepository.Get(1), form);
Assert.IsNotNull(actionResult);
Assert.AreEqual("WebPageList", actionResult.RouteValues["action"]);
var item = ((ViewResult)controller.WebPageEdit(webPagesRepository.Get(1), form)).ViewData.Model as WebPage;
Assert.NotNull(item);
Assert.AreEqual(2, item.CategoryID);
}
Он потерпел неудачу в этой строке:
var item = ((ViewResult)controller.WebPageEdit(webPagesRepository.Get(1), form)).ViewData.Model as WebPage;
Я имею в виду есть ли способы, чтобы проверить «элемент» объект перед ним перенаправить на другие действия?
Пожалуйста, отредактируйте свой вопрос, чтобы включить: 1: Код, который может быть скомпилирован (не все коды кода WebPageEdit возвращают значение). 2: описание полученной вами ошибки. –