ActionLink com Ajax

27/09/2013

0

Boa tarde pessoal.

Estou com uma pequena dúvida e espero que vcs possam me ajudar.

Tenho uma View com um Grid (Kendo UI Grid). Nesse Grid tenho uma coluna com dois Action Link: Um para a View de Alteração e outro para a View de Exclusão.
Ao clicar no link para Alteração, gostaria que fosse mostrado um "ajax loading" bloqueando a tela, enquanto a chamada é processada.

Alguem pode ajudar?

Desde já agradeço.

Thomás Moreira

Thomás Moreira

Responder

Posts

27/09/2013

Joel Rodrigues

Talvez este artigo lhe ajude: [url]https://www.devmedia.com.br/asp-net-mvc-e-ajax-exibindo-o-progresso-de-execucao-de-uma-view/28105[/url]
Responder

28/09/2013

Thiago Porto

outra sugestão: [url]http://www.youtube.com/waibtecnologia[/url]
Responder

28/09/2013

Thiago Porto

Para bloquear a tela existe esse plugin jquery.blockUI no site tem bastante exemplo e de simples compreensão.
Responder

29/09/2013

Thomás Moreira

Thiago e Joel,

Obrigado pela força.
Vou testar as sugestões amanha e posto o resultado aqui no forum!

Valeu!
Responder

30/09/2013

Thomás Moreira

Amigos,

Depois de algumas tentativas com os exemplos indicados por vocês, ainda não consegui sucesso.
Eu percebi que a maioria dos exemplos que encontrei na net, tratam esse assunto sempre com a renderização de uma Partial View numa DIV, porem dentro da mesma view.

No meu caso preciso redirecionar para outra View, independente!

Vou tentar ilustar meu caso de uma forma mais clara:

public class TipoAmbienteController : BaseController
{
private readonly SmeDbContext smeDbContext = new SmeDbContext();
private TipoAmbienteBusiness tipoAmbienteBusiness;

public TipoAmbienteController()
{
tipoAmbienteBusiness = new TipoAmbienteBusiness(smeDbContext);
}

public ActionResult Index()
{
return View();
}

public JsonResult Selecionar([DataSourceRequest] DataSourceRequest request)
{
var tipos = tipoAmbienteBusiness.Consulta;

return this.Json(tipos.ToDataSourceResult(request));
}

public ActionResult Inserir()
{
return View();
}

[HttpPost]
public ActionResult Inserir(TipoAmbiente tipoAmbiente)
{

var tipoInserir = new TipoAmbiente
{
sDescricao = tipoAmbiente.sDescricao,
sCodigo = tipoAmbiente.sCodigo,
};

if (ModelState.IsValid)
{
try
{

tipoAmbienteBusiness.Inserir(tipoInserir);
SuccessNotification("Registro inserido com sucesso!");

}
catch (Exception ex)
{
ErrorNotification(ex.Message);

}

}

return View("Index");

}

public ActionResult Alterar(string id)
{
var tipo = tipoAmbienteBusiness.RetornarPorID(id);

if (tipo == null)
{
return RedirectToAction("Index");
}

return View(tipo);
}

[HttpPost]
public ActionResult Alterar(TipoAmbiente tipoAmbiente)
{


if (ModelState.IsValid)
{
try
{

tipoAmbienteBusiness.Alterar(tipoAmbiente);
SuccessNotification("Registro alterado com sucesso!");

}
catch (Exception)
{
throw;
}

}

return View("Index");

}


public ActionResult Excluir(string id)
{
var tipoExcluir = tipoAmbienteBusiness.RetornarPorID(id);
return View(tipoExcluir);
}

[HttpPost]
public ActionResult Excluir(TipoAmbiente tipoAmbiente)
{

tipoAmbienteBusiness.Excluir(tipoAmbiente.sID);
SuccessNotification("Registro excluido com sucesso!");

return View("Index");


}




}

Nesse, preciso que, a partir da View Index, chamar a Action Alterar que vai redirecionar para a View Alterar.
Caso essa requisição seja lenta, quero mostrar o loading na tela, bloqueando qualquer ação do usuário, até que a chamada seja realizada e a View Alterar seja renderizada.
Responder

02/10/2013

Thomás Moreira

Alguém?
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar