在MVC控制器中使用Querystring变量

时间:2015-07-18 18:24:21

标签: c# asp.net-mvc asp.net-mvc-4

我想在MVC Controller中接受我的查询字符串值。我也尝试将其作为参数,但也不接受。因为我想确认此登录请求来自收件箱。

"../../fonts";

我的MVC控制器

http://localhost:58692/Account/Login?returnFrom=#inbox

2 个答案:

答案 0 :(得分:1)

它不起作用,因为#之后的所有内容都是客户端。 URL中的#定义了指向锚点的链接,#后面的查询字符串将不会发送到IIS服务器。由于这是客户端,您需要从URL中转义# - 您无法在服务器上获取它,因为浏览器已将其剥离。试试这个:

http://localhost:58692/Account/Login?returnFrom=inbox

为此,您需要编写一些JavaScript代码,因此您可以使用this technique

答案 1 :(得分:0)

您需要有两个登录操作(GET和POST):

[AllowAnonymous]
public ActionResult Login(string returnUrl) 
{
    if (Request.QueryString["returnFrom"] != null) 
    {
        // return the Login view... 
    }
}

[HttpPost]
public ActionResult Login(User user) 
{
    // Check if the user is authorized...
}

而且,正如Sirwan所说,您需要从网址中删除#

http://localhost:58692/Account/Login?returnFrom=inbox