Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 查询字符串变量在MVC控制器中的使用_C#_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

C# 查询字符串变量在MVC控制器中的使用

C# 查询字符串变量在MVC控制器中的使用,c#,asp.net-mvc,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 4,我想在MVC控制器中接受我的querystring值。我也尝试将其作为参数,但它也不接受。因为我想确认此登录请求来自收件箱 http://localhost:58692/Account/Login?returnFrom=#inbox 我的MVC控制器 [HttpPost] [AllowAnonymous] public ActionResult Login(User user, string returnUrl) { if (Request.QueryString["returnFr

我想在MVC控制器中接受我的querystring值。我也尝试将其作为参数,但它也不接受。因为我想确认此登录请求来自收件箱

http://localhost:58692/Account/Login?returnFrom=#inbox
我的MVC控制器

[HttpPost]
[AllowAnonymous]
public ActionResult Login(User user, string returnUrl) 
{
    if (Request.QueryString["returnFrom"] != null) // this comes as a null
    {

    }
}

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

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

为此,您需要编写一些JavaScript代码,以便使用。

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

正如Sirwan所说,您需要从URL中删除
#

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

我不知道当您在控制器上使用POST方法而不是GET时是否传递了querystring参数。在这种情况下,您可以使用returnFrom作为表单隐藏字段之一。在登录中,我希望它确认此请求是正常的,或者此请求来自电子邮件/收件箱,您可以使用另一种方法/链接,该方法/链接可以作为控制器的一部分,用于处理来自链接/收件箱的登录。@shahkalpesh您可以给我看一些示例吗?您不清楚要做什么。不能在POST请求中使用查询字符串。如果要将参数传递给操作,只需将其用作表单中的隐藏输入。
http://localhost:58692/Account/Login?returnFrom=inbox