C# Ajax.BeginForm不发送和AjaxRequest
我想使用Ajax.BeginForm更新表而不重新加载整个页面,当我提交表单时,请求不是Ajax请求,或者在控制器方法中,当我询问请求是否为Ajax时,它从不进入if语句。所以我的文件中有: 论局部观C# Ajax.BeginForm不发送和AjaxRequest,c#,jquery,asp.net,ajax,razor,C#,Jquery,Asp.net,Ajax,Razor,我想使用Ajax.BeginForm更新表而不重新加载整个页面,当我提交表单时,请求不是Ajax请求,或者在控制器方法中,当我询问请求是否为Ajax时,它从不进入if语句。所以我的文件中有: 论局部观 @model IEnumerable<Fighting.DTO.N_pais.OutN_pais> <table class="table table-advance" id="table_paises"> <thead> <tr
@model IEnumerable<Fighting.DTO.N_pais.OutN_pais>
<table class="table table-advance" id="table_paises">
<thead>
<tr>
<th style="width: 18px">
<input type="checkbox" /></th>
<th>Nombre</th>
<th>Editar</th>
<th>Eliminar</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr class="table-flag-blue">
<td>
<input type="checkbox" value="@item.ID_PAIS" /></td>
<td>@item.NOMBRE</td>
<td><a class="btn btn-circle" data-toggle="modal" href="#modal-2" onclick="Edit(@item.ID_PAIS)"><i class="fa fa-edit"></i></a></td>
<td><a class="btn btn-circle" data-toggle="modal" href="#modal-3" onclick="Delete(@item.ID_PAIS, @item.NOMBRE)"><i class="fa fa-trash-o"></i></a></td>
</tr>
}
</tbody>
</table>
我遗漏了什么?如果不引人注目的ajax脚本在执行时出错并退出,而让浏览器自行处理提交,则会出现这种行为。根据我的经验,这通常发生在名称不匹配的情况下。也许您的局部视图没有返回ID为“table_paises”的对象,因此脚本无法找到目标对象
不管怎样,在浏览器(F12)中调试代码都会暴露错误。在我的例子中,我忘记加载
jquery.unobtrusive ajax.min.js
文件
我通过添加以下代码行解决了这个问题
@Scripts.Render("~/Scripts/jquery.unobtrusive-ajax.min.js")
您是否尝试过更改
,
和
之间的功能差异为零。按按钮
。
public object Obtener()
{
var pais = _n_pais.GetAll().ProjectedAsCollection<OutN_pais>().ToList();
var paises = from r in pais select r;
return paises;
}
public override ActionResult Obtener(InUi input)
{
if (Request.IsAjaxRequest())
{
return PartialView("_TablePais", Obtener());
}
return View(Obtener());
}
@Scripts.Render("~/Content/Flaty/assets/jquery/jquery-2.0.3.min.js")
@Scripts.Render("~/Content/Flaty/assets/bootstrap/js/bootstrap.min.js")
@Scripts.Render("~/Content/Flaty/assets/jquery-slimscroll/jquery.slimscroll.min.js")
@Scripts.Render("~/Content/Flaty/assets/jquery-cookie/jquery.cookie.js")
@Scripts.Render("~/Content/Flaty/assets/jquery-unobtrusive-ajax/jquery.unobtrusive-ajax.js")
@Scripts.Render("~/Scripts/jquery.unobtrusive-ajax.min.js")