Действия формы ASP.NET MVC для сервисных маршрутов - PullRequest
0 голосов
/ 27 октября 2011

Я работаю над приложением ASP.NET MVC.Я использовал только правило маршрутизации по умолчанию.У меня есть несколько представлений, которые отображают формы с использованием кода, подобного этому:

@using (Html.BeginForm("ForgotPassword", "Register", FormMethod.Post))

Это работает нормально.Форма действия будет отправлять на /myapp/register/forgotpassword, и все отлично работает.

Теперь нужно добавить несколько конечных точек службы в одно и то же приложение.Поэтому я добавил несколько новых маршрутов выше стандартного.Настройка маршрутизации теперь выглядит следующим образом:

//New rule
RouteTable.Routes.Add(
    new ServiceRoute(
    "api/user", new MyCustomerServiceHostFactory(),
    typeof(UserWebservice)));

//Default rule
routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
  );

После добавления нового правила все мои формы сломались.Изучив HTML, я вижу, что действие формы /myapp/api/user?action=ForgotPassword&controller=Register', что совершенно неверно.

Итак, мой вопрос: как мне маршрутизировать новый сервис, не ломая все мои существующие формы?

А для бонусных баллов: какого черта здесь происходит?

1 Ответ

0 голосов
/ 27 октября 2011

попробуйте использовать, как показано ниже,

//New rule
RouteTable.Routes.Add(
    new ServiceRoute(
    "UserWebservice", new MyCustomerServiceHostFactory(),
    typeof(UserWebservice)));

//Default rule
routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
  );

Я думаю, изменение кода для добавления маршрута как Ссылка должно работать.Также проверьте этот блог для создания Динамических маршрутов обслуживания .

...