2015-04-03 3 views
1

я получил простое веб-приложение с маршрутизацией 1 по умолчанию:ASP.NET MVC по умолчанию Рауса неправильно

routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Game", action = "Index", id = UrlParameter.Optional } 
     ); 

Мой контроллер содержит следующие действия:

public class GameController : Controller 
{ 
    public ActionResult Index() 
    { 
     // some actions    
     return View(); 
    }      

    [HttpPost] 
    public ActionResult CreateGame(Game game, User user) 
    { 
     // some actions 
      return View("Game");      
    } 

    [HttpPost] 
    public ActionResult JoinGame(User user) 
    { 
     // some actions 
     return View("Game");       
    } 
} 

Также в соображениях/папку игры я получил «Индекс» и «Игра». Но когда я запустить приложение время от времени (не всегда!) Он просит

http://localhost:55815/Game/Game 

вместо

http://localhost:55815 or http://localhost:55815/Game/Index 

ответ

3

Ваше приложение маршрут по умолчанию работает отлично.

Отладчик запускает url http://localhost:55815/Game/Game, так как файл Game.cshtml в настоящее время открыт в вашей Visual Studio.

Решение находится в конфигурации проекта VisualStudio. Выберите конкретную страницу с пустым значением вместо текущего/активного. Страница.

enter image description here

+1

ОК, у меня есть одна вещь в моем сознании - OMG! Серьезные! Я отлаживал его в течение нескольких часов! &% $ #^@ $ # $ # *% $ (^ (^% ... grrrrr Спасибо большое! –

0

На самом деле,

/Game/Game

и

/Game/Index

оба одинаковы. Когда вы проверяете файл маршрутизации по умолчанию, вы можете видеть, что ваш главный контроллер написан с предопределенным контроллером и действием. Таким образом, программа автоматически разрешает этот URL-адрес в соответствии с этим. В основном попробуйте использовать свое веб-приложение не в Visual Studio debug, а поместите его под IIS, чем если вам потребуется отладка, отладка экземпляра IIS.

Удача

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