MVC3 - прямая ссылка в письме для запуска действия контроллера - PullRequest
0 голосов
/ 16 февраля 2012

У меня есть приложение MVC3, и я хочу начать действие напрямую со ссылкой, отправленной по электронной почте.

Ссылка выглядит так

http://localhost:52972/Account/Confirm/c4e80acb46R8uIq

В моем приложении MVC у меня есть AccountController, и я создал действие Подтвердить, как показано ниже:

public ActionResult Confirm(string id)
{
    ViewBag.ConfirmMessage = id;
    return View();       
}

Мой маршрут на global.asax по умолчанию,

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

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

Ошибка HTTP 404.0 - Не найдено Ресурс, который вы ищете, был удален, изменилось его имя или временно недоступен.

Что я делаю не так?

Спасибо

Ответы [ 4 ]

1 голос
/ 16 февраля 2012

Если ваше приложение размещено в виртуальном каталоге, я подозреваю, что вы забыли имя приложения. Так что вместо:

http://localhost:52972/Account/Confirm/c4e80acb46R8uIq

ссылка должна быть:

http://localhost:52972/MyApplicationName/Account/Confirm/c4e80acb46R8uIq
1 голос
/ 16 февраля 2012
1-) Your server may down.
2-) Your port may be changed
3-) Your view does not exist.


solutions.

1-) Start your app again :)
2-) Set your application port as static from;
 Properties->Web->Servers Specific Port

3) Add new view
1 голос
/ 16 февраля 2012

Ваш контроллер и маршрут выглядят корректно, поэтому я предполагаю, что ваше приложение не работает или не работает на другом порту.Убедитесь, что в системном трее вы видите запущенный сервер разработки ASP.NET, если нет, нажмите F5 или Ctrl + F5 (без отладки), чтобы запустить его.При желании вы можете установить определенный порт для своего приложения, следуя этому сообщению: http://msdn.microsoft.com/en-us/library/ms178109%28v=vs.80%29.aspx

Удачи.

0 голосов
/ 16 февраля 2012

Спасибо всем за ваше время Фактическая проблема заключалась в том, что строка параметров была более сложной, чем то, что я опубликовал (я сокращаю ее для простоты в своем посте)

Однако настоящий параметр, который, я думаю, вызвал какой-то другой маршрут (или, возможно, дополнительные параметры, кто знает) Я исправил проблему, преобразовав параметр в шестнадцатеричную строку (чтобы он содержал только 0-9, a-f), и тогда он заработал

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...