Как вернуть правильный ответ при ошибке в ASP.NET MVC 3.0 через JSON?

Я изо всех сил пытаюсь решить эту проблему. локальный компьютер (Win7 / VS2010 / IIS 7.5) и другой идентичный компьютер разработчика, следующий код возвращает код состояния 500, а в тексте ответа говорится: «Не удалось найти пользователя с указанным адресом электронной почты».

Когда я развертываю сайт на мой тестовый сервер (Win2008 R2 / IIS7.5) возвращает правильный код состояния, но для типа содержимого установлено значение «text / html», а responseText не содержит сообщения.

Я попытался отключить пользовательский ошибки на сервере, которые не имели никакого значения. Кто-нибудь может определить, в чем может быть проблема?

У меня есть форма, настроенная с помощью метода AjaxHelper.BeginForm:

@using (Ajax.BeginForm("FindUser", new AjaxOptions {OnSuccess="findComplete", OnFailure="findFailed"}) 
{
    
@Html.EditorFor(m => m.UserEmail)
}

С функцией обработки ошибок javascript:

function findFailed(result) {
    var error = result.responseText;
    if (error) {
        $('#find-err .contents').text(error).slideDown();
    }
}

Действие контроллера выявляет любые ошибки и возвращает сообщение:

[HttpPost]
public ActionResult FindUser(FindUserModel model) 
{
    try
    {
        // code to find user

        if (user == null) 
        {
            throw new Exception("Could not locate user with specified email address.");
        }

        if (Request.IsAjaxRequest())
        {
            return Json(new { id = user.Id, name = user.Name }, JsonRequestBehavior.AllowGet);
        }

        model.FoundUser = user;
        return View("Details", model);
    }
    catch (Exception ex)
    {
        if (Request.IsAjaxRequest())
        {
            Response.StatusCode = 500;
            return Json(ex.Message, JsonRequestBehavior.AllowGet);
        }

        ModelState.AddModelError("UserEmail", ex.Message);
        return View(model);
    }
}

Любая помощь будет принята с благодарностью :)

-121 --- 1 177198-

Модульное тестирование Scrapy Я хотел бы реализовать некоторые модульные тесты в Scrapy (сборщик экрана / веб-сканер). Поскольку проект запускается с помощью команды "scrapy crawl", я могу запустить его через что-то вроде носа. Поскольку scrapy - это ...

Я хотел бы реализовать несколько модульных тестов в Scrapy (скребок экрана / веб-сканер). Поскольку проект запускается с помощью команды "scrapy crawl", я могу запустить его через что-то вроде носа. Поскольку scrapy построен на основе twisted, могу ли я использовать его среду модульного тестирования Trial? Если да, то как? В противном случае я бы хотел, чтобы нос работал.

Обновление:

Я говорил о Scrapy-Users , и я предполагаю, что я должен «создать ответ в тестовом коде, а затем вызовите метод с ответом и подтвердите, что [I] получил ожидаемые элементы / запросы на выходе ». Я не могу заставить это работать.

Я могу создать тестовый класс модульного теста и в тесте:

  • создать объект ответа
  • попытаться вызвать метод синтаксического анализа моего паука с объектом ответа

Однако в конечном итоге он генерирует эту трассировку. Любое понимание того, почему?

56
задан Huge 23 May 2016 в 14:03
поделиться