Array
(
)

ActionLink com Ajax

Thomás Moreira
   - 27 set 2013

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.

Thiagoporto
   - 28 set 2013

outra sugestão: http://www.youtube.com/waibtecnologia

Thiagoporto
   - 28 set 2013

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

Thomás Moreira
   - 29 set 2013

Thiago e Joel,

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

Valeu!

Thomás Moreira
   - 30 set 2013

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.

Thomás Moreira
   - 02 out 2013

Alguém?