从网址

时间:2018-02-07 20:35:26

标签: asp.net-mvc

在MVC中,我试图从一个ActionResult方法传递一个可选的ID参数,我想在另一个ActionResult方法中捕获该ID。我目前有以下代码,但我仍然找不到在Method2()中获取ID的方法。

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Method1(SomeModel model)
{
    int someID = model.something.Id;
    .
    ..
    ...
    return RedirectToAction("Method2", new { userID = someID});
}

单击Method1的View页面上的按钮后,代码会将我引导至Method2页面,我将在我的URL中看到类似的内容

http://localhost:1234/myController/method2?userid=100请注意,?userid=100被调用后,Method2已成功传递到网址。

这是我的方法2。我想要获得userid,但我不能。

[HttpGet]
public ActionResult Method2()
{
    **I want to get the userID from the URL**
}

我甚至尝试使用int? id,但我仍然为id获取null。

public ActionResult Method2(int? id)
{
    //id return null all the time
}

有关如何在Method2()中的URL中获取userid的任何帮助?

2 个答案:

答案 0 :(得分:0)

userid的值键值对位于请求查询字符串集合中。要做到这一点,请执行以下操作:

if (Request.QueryString.Count > 0)
{
    if(Request.QueryString["userid"] != null)
    {
         int userId = (int)Request.QueryString["userid"];
    }
}

答案 1 :(得分:0)

您的查询字符串的变量名称和actionresult变量名称必须匹配

[HttpGet]
public ActionResult Method2(int userid)
{
    //your code        
}

甚至

public ActionResult Method2(int? userid)
{
    //id return null all the time
}