为什么Ajax.BeginForm在另一个页面中返回部分视图

时间:2015-12-26 12:58:02

标签: jquery ajax asp.net-mvc asp.net-mvc-partialview

我有一个包含Ilanlar Part.Form调用的表单和部分视图的视图用于过滤部分视图数据。我提交表单数据来过滤部分视图数据,动作返回另一页面的局部视图。如何使用刷新的部分视图数据提交表单数据后保持同一页面。

     *HTML*
               @using (Ajax.BeginForm("IlanlarPart", "Ilanlar", FormMethod.Post, new AjaxOptions { OnSuccess = "success" }))
 {
          <div class="panel-body">
              @Html.DropDownListFor(model => model.IlanKategoriID, new SelectList(Model.listKategoriler, "KategoriID", "KategoriAdi"), "Seçiniz", new { @class = "form-control" })
            </div>

     <div class="panel-group">
          <button type="submit" id="btnSearch">Search</button>
           </div>

 }

  public ActionResult Index()
  {
            return View((IlanInfo)getData());
  }

  public ActionResult IlanlarPart()
  {
            getData();
            return PartialView("IlanlarPart", ilanInfo);
  }

//此操作会过滤部分视图数据,但会在另一页中显示“Ilanlar Part”局部视图。

   [HttpPost]
    public ActionResult IlanlarPart(IlanInfo ilan)
    { 
        ilanInfo.listArsalar.Where(p => p.IlanKategoriID == ilan.IlanKategoriID).ToList();

        return  PartialView("IlanlarPart",ilanInfo);

    }

1 个答案:

答案 0 :(得分:4)

我认为你想从ajax.beginform()获取ajax结果。为此,您希望在视图中包含jquery.unobtrusive-ajax.min.js并需要启用

<add key="UnobtrusiveJavaScriptEnabled" value="true" />
web.config中的

。 您还需要将ajax.beginform()更改为

@using (Ajax.BeginForm("IlanlarPart", "Ilanlar", null, new AjaxOptions { OnSuccess = "success", HttpMethod = "Post" }))

有关ajax.beginfrom()的更多详细信息,请点击链接http://www.niceonecode.com/Blog/DotNet/MVC/ASP_NET-MVC-Ajax_Beginform-and-Partial-View/2