Вот моя ситуация: у меня есть диалоговая форма, которая вставляет некоторые данные в мою базу данных. После того, как все проверено, информация формы превращается в объект базы данных (я использую linq to sql) и отправляется.
Поскольку я делаю это, используя jquery ajax, у меня есть функция успеха, которая отображает некоторое сообщение пользователю (просто чтобы сообщить ему, что его действие было успешным), закрывает мой диалог и обновляет мою главную страницу. И это проблема, ни одно из успешных действий не происходит из-за какого-то странного окна загрузки, которое появляется, спрашивая меня, хочу ли я загрузить действие моего контроллера (вы увидите мой код).
Вот сокращенный код:
Функция отправки JQuery
//Submete a nova solicitão ao servidor e atualiza a página em caso de sucesso
$("#novaSIForm").submit(function (e) {
e.preventDefault();
$.ajax({
type: "Post",
url: $(this).attr("action"),
cache: false,
data: $(this).serialize(),
success: function (data) {
//Fecha a modal
$("#novaSIModal").dialog("close");
//Após a requisição ter sucesso, atualiza a página
$("#SiContainer").load('@Url.Action("SolicitacoesInternas")');
alert(data.msg);
},
error: function (jqr, errorStatus, errorThrow) {
alert("Erro ocorrido " + errorStatus);
}
});
return false; //Isso faz com o que o form não execute sua ACTION
});
АКЦИЯ
public ActionResult SiNovaSI(ChamadoViewModel chVM, string tituloChamado)
{
try
{
CHAMADO ch = new CHAMADO();
ch.InjectFrom(chVM);//Injeta os valores da ViewModel no novo Chamado criado
//Seta outras propriedades que não foram injetadas anteriormente
ch.DATAINICIO = DateTime.Now;
ch.SOLICITANTE = ((USUARIO)Session["UsuarioLogado"]).NOMEREDUZIDO;
ch.STATUS = "SOLICITADO";
ch.VALORDEBITO = ((DEBITO)Session["Debitos"]).VALORPARCELA;
ChamadoManager chMan = new ChamadoManager();
chMan.InsertCHAMADO(ch);//Insere o novo chamado no banco de dados
return Json(new { sucesso = true, msg = "Chamado cadastrado com sucesso" });
}
catch (Exception e)
{
return Json(new { sucesso = false, algo = "Nao foi possível registrar o chamado. Erro: " + e.Message });
}
}
Изображение

О, я забыл упомянуть, что я включил все необходимые скрипты jquery. Включая некоторые скрипты MS Ajax (хотя я больше не использую их).