ActionLink com Ajax
27/09/2013
0
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
Posts
27/09/2013
Joel Rodrigues
28/09/2013
Thiago Porto
28/09/2013
Thiago Porto
29/09/2013
Thomás Moreira
Obrigado pela força.
Vou testar as sugestões amanha e posto o resultado aqui no forum!
Valeu!
30/09/2013
Thomás Moreira
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.
Clique aqui para fazer login e interagir na Comunidade :)