0

在我的MVC4应用程序中,我想根据客户端向用户显示数据。我想使用URL routing.
例如
1. http://mysite.com/abc/account/login
2. http://mysite.com/xyz/account/login

在这里,“abc”和“xyz”被称为客户端代码。如果用户输入第一个 url,则应用程序将连接到客户端“abc”的数据库。如果用户输入第二个 url,那么它将连接到客户端“xyz”的数据库。

我想实现上述功能。那么我应该如何使用路由。

我在 RouteConfig 中使用了以下代码 -

routes.MapRoute(
           name: "Default",
           url: "{clientcode}/{controller}/{action}/{id}",
           defaults: new { clientcode = UrlParameter.Optional, controller = "Account", action = "Login", id = UrlParameter.Optional }
       );

提前致谢。

4

2 回答 2

0

您可以通过阅读来实现这一点ControllerContext.RouteData。该RouteData对象包含Values RouteValueDictionary您可以读取和查询的clientcode. 例如:

var clientCode = ControllerContext.RouteData.Values["clientcode"];

if (String.IsNullOrWhiteSpace(clientCode))
{
    // Set to a default value
    clientCode = "default_value";
}

// Do something with clientCode

return ViewResult(); // or RedirectToAction("ActionName")

就是这样。

于 2013-06-15T12:42:37.073 回答
0

您只能在 ASP.NET MVC 中将最后一个参数设为可选。不要更改默认路由,而是为此特定 URL 创建一个新路由。确保在默认路由之前添加这个。

routes.MapRoute(
           name: "Login",
           url: "{clientcode}/account/login",
           defaults: new { clientcode = UrlParameter.Optional, controller = "Account", action = "Login" }
       );
于 2013-05-31T12:31:17.743 回答