2012-03-04 1 views
1

私はasp.net MVC 3アプリケーションを開発中です。アプリケーションの1つのホームページ、次のようにログインページにリダイレクトするいくつかのリンクがあります。私はこのような部分的なビューを持つログインビュー上ログイン後にURLが返ってこない

public ActionResult Login() 
     { 
return view(); 
     } 

<a href="Home/Login?returnUrl=/Disputes/Index"> Disputes </a> 

ログインアクションメソッドは、このようなものです:それはこのようなものです上部に

@Html.Partial("_LogOn", new LogOnModel { Type = LogOnTypeEnum.Obligor }) 

と_LogOn部分はこのようなものです:

@{ 
    string retUrl = ""; 
    if (ViewContext.HttpContext.Request.UrlReferrer != null) 
    { 
     retUrl = 
      ViewContext.HttpContext.Request.UrlReferrer.PathAndQuery; 
    }    
} 

とフォームのようになります。私は(それは私のように部分図を使用していない。この例を以下の午前

public ActionResult LogOn(LogOnModel model, string returnUrl) 

{ 
// I want to redirect to localhost:2304//myapp/returnurl but returnurl is empty 

} 

@using (Html.BeginForm("LogOn", "Account", FormMethod.Post, new { autocomplete = "off", id = "frmLogin", Type = 2, model = this.Model, returnUrl = Request.QueryString["ReturnUrl"] })) 

、最終的には、アカウントコントローラの方法をログオン使用中)

http://visualstudiounleashed.com/mikesnell/post/2011/08/16/Using-the-ASPNET-MVC-3-Logon-returnUrl-Parameter.aspx

+0

の可能複製(http://stackoverflow.com/questions/9554115/redirect-to-return-url-ログイン後) – Rafay

答えて

1

戻りURLを取得するためにUrlReferrerを使用しないでください。代わりに、あなたのGETアクションメソッドの引数としてそれを取る:

public ActionResult Login(string returnUrl) 
{ 
    return View(new LogOnModel { ReturnUrl = returnUrl }); 
} 

あなたLogOnModelは、我々はこれを使用して、にreturnurl性質を持っている必要があります、

[HiddenInput(DisplayValue = false)] 
public string ReturnUrl { get; set; } 

そして、ユーザーの投稿フォームreturnurlがあなたのPOSTアクションメソッドに入ることを確認してください:[ログイン後のURLを返すためにリダイレクト]

@Html.EditorFor(m => m.ReturnUrl) 

public ActionResult LogOn(LogOnModel model) 
{ 
    // on logon success, redirect to model.ReturnUrl 
} 
+0

あなたのお返事ありがとうございます。最後のLogonメソッドのmodel.returnUrlプロパティに/ Disputes/Index – DotnetSparrow

+0

丁寧な答えが返ってきましたが、なぜreturnUrlをインデックス(LogonModel、returnUrl)のポストに渡しても機能しなくなったのですか? – flipdoubt

+0

通常、LoginModelを使用しているときは、HTTP POST中です。 returnUrlの送信は通常HTTP GETを介して行われます。 LogModelに文字列ReturnUrlプロパティを追加するだけではどうですか? – danludwig

関連する問題