Частичное управление входом в MVC - PullRequest
2 голосов
/ 01 сентября 2010

Это следующее из: Частичный контроль входа в систему MVC

Я получил событие AccountController Logon Post с моего дочернего элемента управления.Проблема, с которой я столкнулся сейчас, заключается в том, что когда пользователь вводит неправильный пароль, сообщение входа в систему AccountController пытается вернуться на страницу Logon.aspx, а не в мой частичный элемент управления входом в систему.Это код из контроллера:

<HttpPost()> _
Public Function LogOn(ByVal model As LogOnModel, ByVal returnUrl As String) As ActionResult
    If ModelState.IsValid Then
        If MembershipService.ValidateUser(model.UserName, model.Password) Then
            FormsService.SignIn(model.UserName, model.RememberMe)
            If Not String.IsNullOrEmpty(returnUrl) Then
                Return Redirect(returnUrl)
            Else
                Return RedirectToAction("Index", "Home")
            End If
        Else
            ModelState.AddModelError("", "The user name or password provided is incorrect.")
        End If
    End If

    ' If we got this far, something failed, redisplay form
    Return View(model)
End Function

Я передаю returnUrl, поэтому, если пользователь вводит правильные данные, он работает отлично.Но все, что я хочу, это сделать, если они введут неправильные данные, чтобы показать «Имя пользователя или неверный пароль» на моем дочернем контроле.

Есть идеи?

Спасибо

1 Ответ

0 голосов
/ 01 сентября 2010

MVC автоматически ищет представление с тем же именем, что и действие контроллера, но я не думаю, что оно ищет частичное представление (я могу ошибаться).

попробуйте это:

return PartialView(model)

Если имя частичного представления не совпадает с действием контроллера, вам придется явно указать имя частичного вида

return PartialView("PartialViewName",model)

Прав ли я, думая, что частичное представление только в том случае, если они вводят неверные данные? Если это так, вы можете сэкономить много хлопот с помощью класса System.ComponentModel.DataAnnotations, чтобы вы могли отображать свои сообщения проверки в той же форме входа в систему, чтобы вам не пришлось создавать и поддерживать частичное представление. Если вы уже знаете об аннотациях данных, посмотрите на них, если не добавите комментарий, и я опубликую несколько полезных ссылок, которые объяснят это намного лучше, чем я мог бы.

...