查询字符串中的MVC和位置参数

时间:2010-03-22 14:37:37

标签: asp.net-mvc

这更像是一个问题,以满足我的好奇心与我真正需要回答的问题。回到ASP.NET WebForms,如果我只需要将一个东西传递给一个页面,我偶尔会在查询字符串中使用位置参数。例如:

http://localhost/site/MyPage.aspx?ABCD1234

然后我的代码看起来像这样:

string accountNumber = "";
if (Request.QueryString.Count > 0)
   accountNumber = Request.QueryString[0];

在MVC中,您是否可以将位置查询字符串参数传递给控制器​​方法,而不是通过Request.QueryString访问它?

2 个答案:

答案 0 :(得分:0)

只要你的控制器参数是一个字符串,你就可以通过不命名参数并将其附加到URI来调用它。

http://mydomain.com/controller/action/SingleStringParameterValue

如果你想将它用作查询字符串参数,那么你必须在控制器和查询字符串变量上使用匹配的名称。

答案 1 :(得分:0)

你也可以用MVC做同样的事情。您只需要确保没有将带有查询字符串的URL定向到其他操作方法的路由。

这适用于ASP.NET MVC在您新建项目时创建的默认项目:

    public ActionResult Index() {

        if (Request.QueryString.Count > 0) 
            ViewData["Message"] = "Welcome to ASP.NET MVC: " + Request.QueryString[0];
        else
            ViewData["Message"] = "Welcome to ASP.NET MVC";

        return View();
    }