2014-10-21 4 views
0

Благодарим вас за это, это проблема: у меня есть эта форма, которая имеет действие с главным контроллером специально для индекса. Первый раз выходит делает запрос и вернутьКонтроллер MVC4, возвращающий неправильный URL-адрес

"http://localhost:59761/Main/Index" 

но когда я сделать второй выпадающий выбора это идет и вернуть

"http://localhost:59761/Main/Main/Index" 

(возвращение контроллера в два раза). В основном я хочу вернуть индекс.

здесь вид:

<form method="post" action="Main/Index"> 
    <select name="week" id="week"> 
      <option value=1>Week 1</option> 
      <option value=2>Week 2</option> 
      <option value=3>Week 3</option> 
      <option value=4>Week 4</option> 
      <option value=5>Week 5</option> 
    </select> 
    <input type="submit" value="Search" id="Search"/>  
    </form> 

Контроллер:

public ActionResult Index(int? week) 
    { 
     if (week != null) 
     { 
      var quest = (from q in db.weekly_games 
         where q.week_um == week 
         select q).ToList(); 
      return View(quest); 
     } 

     return View(db.weekly_games.ToList()); 

    } 

вот RouteConfig:

routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Main", action = "Index", id = UrlParameter.Optional } 
+0

Заменить 'action =" Главная/Указатель "' with 'action =" @ Href ("~/Main/Index") "' – Chandu

ответ

1

Используйте Html.Beginform HTML вспомогательный метод инов тид жесткого кодирования значения действия в вашей форме. Это даст правильное значение для свойства вашей формы action. '

@using(Html.BeginForm("Index","Main")) 
{ 
    <select name="week" id="week"> 
      <option value=1>Week 1</option> 
      <option value=2>Week 2</option> 
      <option value=3>Week 3</option> 
      <option value=4>Week 4</option> 
      <option value=5>Week 5</option> 
    </select> 
    <input type="submit" value="Search" id="Search"/>  
} 
Смежные вопросы