asp.net MVC, неправильная функция запуска - отредактированный - PullRequest
1 голос
/ 05 февраля 2010

У меня есть главная страница с этим элементом управления, который принимает глагол Post. Моя страница входа в систему также привязана к главной странице. Когда я ввожу неправильное имя пользователя / пароль, метод этого элемента управления, который принимает глагол, также запускается вместе с методом для принятия пароля имени пользователя.

Это на HomeConroller:

 [ActionName("ControlTemp"), AcceptVerbs(HttpVerbs.Post)]
        public ActionResult ControlTemp(TempClass temp)
        {
           return PartialView("ControlTemp"); 
        }

Это на AccountController:

[AcceptVerbs(HttpVerbs.Post)]
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings",
            Justification = "Needs to take same parameter type as Controller.Redirect()")]
        public ActionResult LogOn(string userName, string password, bool rememberMe, string returnUrl)
        {

            if (!ValidateLogOn(userName, password))
            {
                return View();
            }

            FormsAuth.SignIn(userName, rememberMe);
            if (!String.IsNullOrEmpty(returnUrl))
            {
                return Redirect(returnUrl);
            }
            else
            {
                return RedirectToAction("Index", "Home");
            }
        }

Теперь, почему вы думаете, что вещи также публикуются в ControlTemp?

РЕДАКТИРОВАТЬ: Вот как я имею в виду элемент управления ControlTemp на главной странице.

            <div id = "divControlTemp">  <% Html.RenderAction("ControlTemp", "Home"); %></div> 

Так что после просмотра отладчика я увидел, что он возвращает View (), если имя пользователя / пароль неверны. Затем он попадает в элемент управления divControlTemp, но вместо запуска public ActionResult ControlTemp(), он стреляет

[ActionName("ControlTemp"), AcceptVerbs(HttpVerbs.Post)]
            public ActionResult ControlTemp(TempClass temp)

и это все, что я вижу в отладчике. Итак, мой вопрос: почему вы думаете, что это пост? Это потому, что reurn View () был вызван из метода, принимающего глагол Post?

1 Ответ

1 голос
/ 05 февраля 2010

Если ваш вопрос «может ли один запрос http запустить два отдельных метода действия», ответ - нет. Если, конечно, нет переадресации с одного метода действия на другой или один из методов вызывает другой напрямую. Если есть перенаправления, вы можете увидеть их в консоли Firebug .

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

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