这更像是一个问题,以满足我的好奇心与我真正需要回答的问题。回到ASP.NET WebForms,如果我只需要将一个东西传递给一个页面,我偶尔会在查询字符串中使用位置参数。例如:
http://localhost/site/MyPage.aspx?ABCD1234
然后我的代码看起来像这样:
string accountNumber = "";
if (Request.QueryString.Count > 0)
accountNumber = Request.QueryString[0];
在MVC中,您是否可以将位置查询字符串参数传递给控制器方法,而不是通过Request.QueryString访问它?
答案 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();
}