2013-07-09 43 views
0

我有一個參數鏈接:如何重定向@ Url.Action

[http://localhost:8545/Admin/Agent/ManageUser?agentId=3230][1] 

後更改語言新的鏈接: [HTTP://本地主機:8545 /管理/代理/ ManageUser] [2]

有錯誤,因爲沒有?agentId = 3230 我使用:<input type="hidden" name="ReturnUrl" value="@Url.Action(null)" /> 我不知道編輯@ Url.Action(null),請幫助我。謝謝!

回答

0

試試這個輸入

<input type="hidden" name="ReturnUrl" value="@Url.Action(ViewContext.RouteData.Values["controller"].ToString(), ViewContext.RouteData.Values["action"].ToString(), new { agentId = Request.QueryString["agentId"] })" /> 

杉杉參數如果Url.Actioncontroller名,第二個參數是action名和最後一個routeValues你能在URL中添加查詢字符串。

+0

感謝您的幫助,我使用值=「@ Request.Url.PathAndQuery」它仍然是URL + PathAndQuery –

0

如果你只是需要將用戶返回到他改變語言之前相同的URL,只要保持完整的URL在你的隱藏input如下:

<input type="hidden" name="ReturnUrl" value="@Request.Url.AbsoluteUri" /> 

而且(假設你的ChangeLanguage方法是可接近使用相同的主機名),你可以簡單地做:

public ActionResult ChangeLanguage(string lang) 
{ 
    // something like... 
    // Session["Lang"] = lang; 

    return Redirect(Request.UrlReferrer.ToString()); 
}