В основном, Asp.net MVC имеет некоторые скрытые функции. Например, когда вы передаете переменную «id» в действие контроллера, он интерпретирует «id» как идентификатор по умолчанию и помещает его в запрос браузера с передней косой чертой. Используя другое имя вместо «id», мы увидим «?» а не передняя черта. Из-за установки имени 'id' для метода RegisterRoutes
для global.asax file.
В этой задаче вы создали собственный контроллер данных для контроллера, используя этот код:
using(Html.BeginForm("LogOn", "Account", FormMethod.Post))
{
//form fields
}
Таким образом, Asp.net MVC игнорирует другие полезные данные для передачи в действие контроллера, и мы увидим returnUrl
всегда null
.
Хотя с помощью этого Asp.net MVC работает правильно и returnUrl
монтируется:
using(Html.BeginForm())
{
//form fields in LogOn View
}
Кстати, когда мы используем настраиваемый обработчик данных для действия контроллера, необходимо передать другие данные вручную следующим образом:
using(Html.BeginForm("LogOn", "Account", new {ReturnUrl = Request.QueryString["ReturnUrl"] }))
{
//form fields
}