我正在尝试使用ajax而不是post方法的整个视图加载div数据。
但它会在帖子操作上返回object%20HTMLInputElement
操作名称。
[HttpGet]
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(DemoCLass objdemo)
{
return View();
}
<div id="divEmp">
@using (Ajax.BeginForm("Index", "Challan", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "divEmp" }))
{
@Html.AntiForgeryToken()
<h3 style="text-align:center;" class="row header">Challan Data</h3>
@Html.Partial("_DateCommonFT")
}
它包括_Layout.cshtml
,其中我将脚本定义为:
<script src="~/Scripts/jquery-1.12.4.min.js"></script>
<script src="~/Scripts/jquery-ui-1.12.1.min.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
如何使用ajax在帖子请求中不加载整个页面(_layout.cshtml)时仅渲染后期操作。
答案 0 :(得分:1)
您是否可以尝试关闭div标签并在控制器中接收HtmlForgeryToken
,如下所示。
您还可以通过PartialView()
方法
Index
来使用PartialView填充目标div
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Index(DemoCLass objdemo)
{
return PartialView();
}
<div id="divEmp">
</div>
@using (Ajax.BeginForm("Index", "Challan", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "divEmp" }))
{
@Html.AntiForgeryToken()
<h3 style="text-align:center;" class="row header">Challan Data</h3>
@Html.Partial("_DateCommonFT")
}
答案 1 :(得分:0)
请使用Ajax.Begin表单,您可以使用OnSuccess方法。
在VIew中: -
@using (Ajax.BeginForm("Index", "Challan", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "divEmp", OnSuccess = "AjaxForm" }))
{
}
在脚本中: - 这里从post controller返回json。
function AjaxForm(response){
.....do as uou want...
}
控制器中的: -
[HttpPost]
public ActionResult Index(DemoCLass objdemo)
{
return json(new {IsSuccess = true},JsonRequestBehavior.AllowGet);
}
如果您对此有任何疑问,请告诉我
答案 2 :(得分:0)
使用PartialView
方法返回没有布局的视图。
[HttpPost]
public ActionResult Index(DemoCLass objdemo)
{
return PartialView();
}
如果您只想为ajax表单提交而返回没有布局标记的html,您可以检查请求标头以查看请求是否是xhr请求。 Request.IsAjaxRequest()
方法在这里很方便。
[HttpPost]
public ActionResult Index(DemoCLass objdemo)
{
if (Request.IsAjaxRequest())
{
return PartialView();
}
else
{
return View();
}
}