C# Ajax.begin在mvc中呈现错误的url

C# Ajax.begin在mvc中呈现错误的url,c#,jquery,ajax,asp.net-mvc,razor,C#,Jquery,Ajax,Asp.net Mvc,Razor,我试图使用ajax而不是post方法加载div数据。 但它在post操作时返回对象%20HTMLInputElement操作名称 控制器: 看法 如何使用ajax在post请求时仅呈现post操作而不加载整个页面(_layout.cshtml)。您是否可以尝试关闭div标记并在控制器中接收HtmlForgeryToken,如下所示 您还可以通过在Index方法中返回PartialView()来用PartialView填充目标div [HttpPost] [ValidateAntiForgeryT

我试图使用ajax而不是post方法加载div数据。 但它在post操作时返回
对象%20HTMLInputElement
操作名称

控制器: 看法
如何使用ajax在post请求时仅呈现post操作而不加载整个页面(_layout.cshtml)。

您是否可以尝试关闭div标记并在控制器中接收
HtmlForgeryToken
,如下所示

您还可以通过在
Index
方法中返回
PartialView()
来用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")
}
[HttpPost]
[ValidateAntiForgeryToken]
公共行动结果索引(DemoCLass objdemo)
{
返回PartialView();
}
@使用(Ajax.BeginForm(“Index”,“Challan”,新的AjaxOptions{HttpMethod=“POST”,UpdateTargetId=“divEmp”}))
{
@Html.AntiForgeryToken()
查兰数据
@Html.Partial(“\u DateCommonFT”)
}

请使用Ajax。从可以使用OnSuccess方法的表单开始

视图中:-

 @using (Ajax.BeginForm("Index", "Challan", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "divEmp",  OnSuccess = "AjaxForm" }))
    {
    }
[HttpPost]
 public ActionResult Index(DemoCLass objdemo)
 {
   return json(new {IsSuccess = true},JsonRequestBehavior.AllowGet);
 }
在脚本中:- 这里返回来自post控制器的json

function AjaxForm(response){
.....do as uou want...
}
在控制器中:-

 @using (Ajax.BeginForm("Index", "Challan", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "divEmp",  OnSuccess = "AjaxForm" }))
    {
    }
[HttpPost]
 public ActionResult Index(DemoCLass objdemo)
 {
   return json(new {IsSuccess = true},JsonRequestBehavior.AllowGet);
 }

如果您对此有任何疑问,请告诉我

使用
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();
   }
}

很抱歉你面临的问题是什么?我仍然无法理解您当前和预期的行为。请关闭div标记,如@Priya用错误消息/意外行为和预期输出更新您的问题。@Priya您解决了问题吗?如果我的ajax帖子没有击中控制器帖子方法怎么办?错误的url
对象%20HTMLINPUTTELEMENT
检查页面的视图源,查看它为表单生成错误操作属性值的原因。我的假设是,
\u DateCommonFT
部分视图呈现的代码破坏了标记。你能试着评论一下,然后再试一次吗?这将有助于您通过对局部视图进行注释来隔离我检查的问题,该视图仅包含一个用于控制后期操作的按钮。但是没有运气。。在
对象%20HTMLInputElement上进行渲染
我希望您修复了缺少的div“divEmp”结束标记。我试过(只试过)你在问题中发布的代码,对我来说效果很好。@Shyju我想OP也错过了controller中的[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult Index(DemoCLass objdemo)
{
   if (Request.IsAjaxRequest())
   {
      return PartialView();
   }
   else
   {
      return View();
   }
}