C# MVC 路由映射和查询字符串
C# MVC Routemap and Querystring
我正在构建一个 MVC 网络应用程序。我想创建自定义 url 登录到我网站中的某个页面,例如:
www.mysite.com/sites/mycompany/mysite/GetLogin/myusername
所以我创建了一个新的 MapRouteas 如下:
routes.MapRoute(
"GetLogin", // the Route name
"sites/{company}/{site}/{action}/{username}",
new { controller = "Home", action = "GetLogin" },
new[] { "****.Controllers" }
);
在 Home 控制器中我有 GetLogin 操作结果:
public ActionResult GetLogin()
{
string UserName = Request.QueryString["username"];
if (UserName != null)
{
}
return View();
}
但是UserName变量的值为null,没找到问题出在哪里
它不是 QueryString
的一部分。它是 RouteData
的一部分。QueryString
将包含 ?
符号之后的所有内容,这意味着查询传递的参数 string.But 在你的路线中你把它作为 路线 的一个块。所以你可以从 RouteData
中检索它
public ActionResult GetLogin()
{
string UserName = RouteData.Values.Contains("username") ? RouteData.Values["username"].ToString() : null;
if (UserName != null)
{
}
return View();
}
回复评论
对于 QueryString,它必须类似于
www.mysite.com/sites/mycompany/mysite/GetLogin?用户名
和根
routes.MapRoute(
"GetLogin", // the Route name
"sites/{company}/{site}/{action}",
new { controller = "Home" },
new[] { "****.Controllers" }
);
我正在构建一个 MVC 网络应用程序。我想创建自定义 url 登录到我网站中的某个页面,例如:
www.mysite.com/sites/mycompany/mysite/GetLogin/myusername
所以我创建了一个新的 MapRouteas 如下:
routes.MapRoute(
"GetLogin", // the Route name
"sites/{company}/{site}/{action}/{username}",
new { controller = "Home", action = "GetLogin" },
new[] { "****.Controllers" }
);
在 Home 控制器中我有 GetLogin 操作结果:
public ActionResult GetLogin()
{
string UserName = Request.QueryString["username"];
if (UserName != null)
{
}
return View();
}
但是UserName变量的值为null,没找到问题出在哪里
它不是 QueryString
的一部分。它是 RouteData
的一部分。QueryString
将包含 ?
符号之后的所有内容,这意味着查询传递的参数 string.But 在你的路线中你把它作为 路线 的一个块。所以你可以从 RouteData
public ActionResult GetLogin()
{
string UserName = RouteData.Values.Contains("username") ? RouteData.Values["username"].ToString() : null;
if (UserName != null)
{
}
return View();
}
回复评论
对于 QueryString,它必须类似于
www.mysite.com/sites/mycompany/mysite/GetLogin?用户名
和根
routes.MapRoute(
"GetLogin", // the Route name
"sites/{company}/{site}/{action}",
new { controller = "Home" },
new[] { "****.Controllers" }
);