2014-09-09 5 views
1

Как я могу установить mapRoute для страницы результатов поиска? Мой код не работает.ASP.NET MVC Результаты поиска Страница MapRoute не работает

Global.asax.cs

routes.MapRoute(
      name: "SearchResults", 
      url: "{action}/{Keyword}", 
      defaults: new { controller = "Home", action = "Search" } 
     ); 

Форма поиска

@using (Html.BeginForm("Search", "Home", FormMethod.Get)) 
      { 
       @Html.TextBox("Keyword",null , new { @class = "SearchBox" }) 
       <input type="submit" value="Search" /> 
      } 

HomeController.cs

public ActionResult Search(string Keyword) 
    { 
     GamesContext db = new GamesContext(); 
     var SearchResults= (from i in db.Games where i.GameName.Contains(Keyword) || i.GameDesc.Contains(Keyword) select i).Take(20).ToList(); 

     return View(SearchResults.AsEnumerable()); 
    } 
+0

Вы хотите получить значение ключевого слова в контроллере get или post? –

+0

"Не работает"? – DavidG

+0

Теперь я использую контроллер, но это не имеет значения. если он работает, я могу использовать постконтроллер. – sasailic

ответ

0

Это один работает для меня (должен быть перед маршрут по умолчанию):

routes.MapRoute(
    "SearchResults", 
    "Search/{Keyword}", 
    new { controller = "Search", action = "SearchAction" } 
); 

Creating an ActionLink and MapRoute that there is a constant name in it

И есть смысл использовать новый контроллер для поиска вместо дома с этим маршрутом.

Смежные вопросы