2014-02-06 3 views
0

"У меня есть контроллер, который имеет Раскрывающийся список и на изменения DDL bindind вызывающего Индексный просмотр снова и возврат частичный вид, который загружает содержимое как: Index контроллера:запрос Ajax с помощью QueryString

public ActionResult Index(ProductEntity Prod, string CategoryId) 
{ 
ViewBag.Category = new SelectList(ObjStore.categories, "CategoryId", "CategoryName"); 
if (Request.IsAjaxRequest()) 
{ 
var model = ObjStore.products.Where(x => x.CategoryId == Prod.CategoryId); 
return PartialView("_ProductMaster", model); 
} 
else if (CategoryId != "" && CategoryId !=null) 
{ 
var model = ObjStore.products.Where(x => x.CategoryId == Prod.CategoryId); 
return PartialView("_ProductMaster", model); 
} 
return View(); 
} 

Частичный ВЗГЛЯД:

@model IEnumerable<StoreManagement.Models.ProductEntity> 

    <div id="Products"> 

    @if (Model != null) 
    {  

    <table style="width:100%;"> 
     <tr> 
      <th>Product Name </th> 
      <th>Max Qty</th> 
      <th>Min Qty</th> 
      <th>Edit</th> 
     </tr> 

     @foreach (var item in Model) 
     { 
      <tr> 
       <td>@item.ProductName.ToString()</td> 
       <td>@item.MaxQty</td> 
       <td>@item.MinQty</td> 
       <td>@Html.ActionLink("Edit","EditProduct",new {[email protected]},null)</td> 
      </tr>   
     } 

    </table> 
    } 
    </div> 

в выше меня Edit Action Link, которая перенаправляет на Edit View и на этой странице я имею обратную ссылку действие, которое перенаправляет на контроллер индекса с ул запроса как CategoryId, который я использую при выборе Dropdownlist.

Теперь я хочу загрузить индексный указатель с помощью CategoryId в качестве строки запроса.

'Else код работает для этого'

   if (Request.IsAjaxRequest()) 
       { 
        var model = ObjStore.products.Where(x => x.CategoryId == Prod.CategoryId); 
        return PartialView("_ProductMaster", model); 
       } 
       else if (CategoryId != "" && CategoryId !=null) 
       { 
        var model = ObjStore.products.Where(x => x.CategoryId == Prod.CategoryId); 
        return PartialView("_ProductMaster", model); 
       } 

но он возвращает только частичный вид. Я хочу, чтобы этот просмотр загружался со страницы _layout. или есть ли способ вызвать событие обмена в DDL, если у нас есть строка запроса в URl? или сделать Request.IsAjaxRequest() true. "

+0

Проверьте это, похоже, этот парень имел подобную проблему. http://stackoverflow.com/questions/21608567/mvc-4-refreshing-partial-view/21608718# 21608718 – CSharper

+0

Не найти решение .... – Danydude

ответ

0

Если вы хотите включить страницу компоновки aswel, вы должны вернуться в виде представления и не как PartialView

  if (Request.IsAjaxRequest()) 
      { 
       var model = ObjStore.products.Where(x => x.CategoryId == Prod.CategoryId); 
       return View("_ProductMaster", model); 
      } 
      else if (CategoryId != "" && CategoryId !=null) 
      { 
       var model = ObjStore.products.Where(x => x.CategoryId == Prod.CategoryId); 
       return View("_ProductMaster", model); 
      } 
Смежные вопросы