2014-03-04 9 views
0

У меня есть ASP.NET MVC 4 приложения имеет следующие действия: Индекскак перенаправить на другое действие на контроллере mvc?

public ActionResult Index() 
{ 
    if (User.IsInRole("dealer")) 
    { 
     return View(db.Commissions.Where(c => c.Dealer.Name == User.Identity.Name)); 
    } 
    else 
    {//admin 
     return View(db.Commissions); 
    } 
} 

Я хотел бы перенаправить мою страницу на другую Mvc действия называется фильтром, но не может сделать это с этим кодом:

$(function() { 
     jQuery.noConflict() 
     $("#datefrom").datepicker(); 
     $("#dateto").datepicker(); 

     $("#btnfilter").click(function() { 
      $.ajax({ 
       type: "get", 
       url: "/commissions/filter/", 
       data:{'from':$("#datefrom").val(),to:$("#dateto").val()} 
       ,success: function(result){ 
        if(result.Success){ 
         window.location = "/Filter/Commissions" + $("#datefrom").val() + $("#dateto").val(); 
        } 
       } 
      }); 
     }); 

    }); 

это действие фильтра:

public ActionResult Filter(DateTime from, DateTime to) 
     { 
      if (User.IsInRole("dealer")) 
      { 
       return View(db.Commissions.Where(c => c.Dealer.Name == User.Identity.Name && c.CreatedDate>=from && c.CreatedDate <=to)); 
      } 
      else 

      {//admin 
       var test = db.Commissions.Where(c => c.CreatedDate >= from && c.CreatedDate <= to); 
       return View(db.Commissions.Where(c=>c.CreatedDate >= from && c.CreatedDate <= to)); 
      } 
     } 

действие фильтр встряхивать на сервере, но я получаю следующее сообщение об ошибке, когда я смотрю в стельку:

[InvalidOperationException: The view 'filter' or its master was not found or no view engine supports the searched locations. The following locations were 

Как я могу это исправить?

+2

Существует ли файл вида Filter.cshtml? –

+1

Я думаю, что при успешном вызове ajax вы передаете неправильный url. Вместо «/ Filter/Commissions» необходимо использовать «/ Commissions/Filter» – 111

ответ

0

Попробуйте это, но у меня есть одно сомнение в вашем коде, где вы возвращаете true/false в действие фильтра.

$(function() { 
    jQuery.noConflict() 
    $("#datefrom").datepicker(); 
    $("#dateto").datepicker(); 

    $("#btnfilter").click(function() { 
     $.ajax({ 
      type: "get", 
      url: '@Url.Action("filter","commissions")', 
      data:{'from':$("#datefrom").val(),to:$("#dateto").val()}, 
      success: function(result){ 
       if(result.Success){ 
        window.location.href = '@Url.Action("filter","commissions",new{from=$("#datefrom").val(),to=$("#dateto").val()})'; 
       } 
      } 
     }); 
    }); 

}); 
+0

, действие фильтра удалено, что не является проблемой – user603007

+0

Тогда что такое проблема yr? – Amit

+0

результат не обновляется, т. Е. Результаты не фильтруются – user603007