2015-12-26 4 views
1

У меня есть представление, которое содержит форму и частичный вид, который вызывается Ilanlar Part.Form для фильтрации данных частичного представления. Если я отправлю данные формы, чтобы отфильтровать частичный вид данные, действие возвращают частичный вид на другой странице. Как оставаться на той же странице после отправки данных формы с обновлением данных частичного просмотра.Почему Ajax.BeginForm возвращает частичный вид на другой странице

 *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); 

    } 

ответ

2

Я думаю, что вы хотите получить результат ajax из ajax.beginform(). Для этого необходимо включить 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

+0

теперь та же страница, но частичный вид не отображать данные хотя и должно быть – Bayraktar

+0

Итак, добавьте UpdateTargetId в AjaxOptions AjaxOptions {UpdateTargetId = "DivContainerID", OnSuccess = "success", HttpMethod = "Post"} и создайте div в виде как

. div покажет результат частичного просмотра. –

+0

Теперь он отлично работает. Спасибо – Bayraktar