У меня есть представление с именем UserVerify с параметром returnUrl, http://localhost:50383/register/UserVerify?returnUrl=http%3A%2F%2Flocalhost%3A50383%2Fregister%2Forganization.

Представление UserVerify имеет частичный элемент управления представлением LogonControl.

<% Html.RenderPartial("LogonControl"); %>

Вот код контроллера для LogonController

 public ActionResult LogonControl(string returnUrl)
        {
            return View();
        }

        [HttpPost]
        public ActionResult LogonControl(LogOnModel model,string returnUrl)
        {
            if (!String.IsNullOrEmpty(returnUrl))
            {
                return Redirect(returnUrl);
            }
            else
            {
                return RedirectToAction("Index", "Public");
            }      
        }

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

0
scottrakes 24 Ноя 2009 в 05:38
Нужно больше кода. Отображается ли частичный фрагмент внутри отправляемой формы?
 – 
John Sheehan
24 Ноя 2009 в 05:51

2 ответа

Форма не возвращала значение. Добавление значения в BeginForm сработало.

(Html.BeginForm("Logon", "Account", new { ReturnUrl = Request.QueryString["ReturnUrl"] }))
1
scottrakes 24 Ноя 2009 в 15:23

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

Быстрый (и, возможно, не лучший) подход — передать returnUrl в routeValues ​​как

@returnUrl=Запрос["returnUrl"]

0
Andrej Kaurin 24 Ноя 2009 в 12:35