【发布时间】:2014-07-07 04:25:39
【问题描述】:
我正在开发 ASP.NET MVC5 (Razor) 项目。我想在单击 Test ActionLink 时将部分视图呈现为 DIV,因此 Controller 的代码是这样的:-
public ActionResult Accion(string vista)
{
if (string.IsNullOrEmpty(vista) || !Request.IsAjaxRequest())
return View();
else
{
object vistaModelo = null;
if (vista.Contains("Usuarios"))
vistaModelo = new UsuariosVistaModelo();
string render = PartialView(vista, vistaModelo).RenderToString();
return Json(new { data = render });
}
}
cshtml代码:-
<div class="menu">
@Html.ActionLink("Test","Accion","Navigation",new { vista = "~/Views/Soporte/Usuarios.cshtml" }, new { @class = "accion" })
<script>
//Dispara la acción en el controlador del servidor
$('.accion').live("click", function () {
$.ajax({
url:this.href,
type:'post',
success:function(data)
{
//data contiene el resultado devuelto por el servidor
$('.content').html(data);
},
error: function (req, status, error) {
alert(error);
}
});
//Se retorna falso para prevenir reenviar a otra pagina
return false;
});
</script>
</div>
<div class="content">
</div>
当我点击 Test ActionLink 时,$('.accion').live("click" ... 事件没有被触发,直接进入控制器。请需要帮助。谢谢
【问题讨论】:
-
主要问题 - 在您的源代码视图中,您是否具有类
accion的属性?我对此表示高度怀疑。另外,我现在不记得正确的语法,但您可以尝试将onclick事件嵌入到@Html.ActionLink代码中。 -
是否包含 jquery 库??并且还使用
onlive已弃用 -
你的控制器也有错误总是返回json为...return Json(new { data = render }, JsonRequestBehavior.AllowGet);
标签: asp.net-mvc html asp.net-mvc-4 c#-4.0 razor