Как возвратить ошибку в сценарии Ajax

Я использую ASP.NET MVC с jQuery. У меня есть следующее Действие MVC, которое возвращает частичную страницу на Успехе. На Ошибке приложения я не уверен, что отправить ее за тем, что она правильно обработала ее в стороне клиента:

public ActionResult LoadFilterSet(int filterSetId)
{
    try
    {
        BreadCrumbManager bcManager = this.ResetBreadCrumbManager(this.BreadCrumbManagerID);
        GeneralHelper.LoadBreadCrumbManager(bcManager, filterSetId);

        ViewData["BreadCrumbManager"] = bcManager;
        return View("LoadFilterSet");
    }
    catch (Exception ex)
    {
        return Content("");
    }
}

Следующим является мой jQuery ajax вызов. Заметьте, что я проверяю на длину данных, чтобы удостовериться, что нет никаких ошибок. Предложите меня лучший способ сделать это.

$.ajax({
    type: "GET",
    dataType: "html",
    async: true,
    data: ({ filterSetId: selectedId }),
    url: link,
    contentType: "text/html; charset=utf-8",
    success: function(data, textStatus) {
        if (data.length > 0) {
            // Clear the local filters first.
            clearLocalFilters();
            $('td.selected-filters table.filters-display').append(data);
        }
    }
});
21
задан MikeSmithDev 4 March 2014 в 22:12
поделиться

2 ответа

Я бы добавил функцию ошибки в настройку вызова ajax. Пусть сервер определит сообщение об ошибке, которое нужно отобразить, и передаст ему обработчик ошибок ajax, и пусть он отобразит его.

success: function(data, textStatus) {     
    // Clear the local filters first.     
    clearLocalFilters();     
    $('td.selected-filters table.filters-display').append(data);         
},
error: function (data) { 
    alert(data.responseText); // use any display logic here
}

В действии вашего контроллера, если ошибка найдена

Response.StatusCode = (int)HttpStatusCode.BadRequest; 
return Content(errorMessage, MediaTypeNames.Text.Plain);
32
ответ дан 29 November 2019 в 21:12
поделиться

Я думаю, вы можете сделать return Content (false.ToString (). ToLower ()); , если возникает ошибка, а затем проверить, не являются ли данные ложными

if(data != false)
{

    //do stuff
}

или

if(!data)
  alert("Error");
else
{
  //do stuff
}
1
ответ дан 29 November 2019 в 21:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: