繁体   English   中英

在asp.net mvc2.0中处理请求时,是否可以在URL中添加其他字段?

[英]Is it possible to add additional fields to the url, when processing a request in asp.net mvc2.0?

这可能是一种奇怪的情况,但这是我当前的问题:

我正在构建一个环境驱动的应用程序(即Dev / Staging / Live)

因此,当用户首次访问该应用程序(myapp.local)时,我将处理默认路由:

        routes.MapRoute(
            "Default",
            "{controller}/{action}/{id}", 
            new { controller = "Home", environment = string.Empty, action = "Index", id = UrlParameter.Optional } 
        );

,将环境添加到url肯定是件好事,这样:

        myapp.local

变成这个:

        myapp.local/environment/development

有没有办法使用C#Asp.Net MVC 2.0来做到这一点?

谢谢。

您可以随时添加路由令牌:

routes.MapRoute(
    "Default",
    "environment/{env}/{controller}/{action}/{id}", 
    new { 
        controller = "Home", 
        env = "development", 
        action = "Index", 
        id = UrlParameter.Optional 
    } 
);

有人说,将环境添加到您的路线是一个可怕的想法。 我衷心希望您永远不要做这样的事情,并且您的控制器动作永远也不要这样:

public ActionResult Index(string env)
{
    string value = "default";
    if (env == "development")
    {
        value = "some value for dev";
    } 
    else if (env == "staging")
    {
        value = "some value for staging";
    }
    else if (env == "live")
    {
        value = "some value for live";
    }
    else
    {
        throw new Exception("Unknown environment");
    }

    ViewBag.Message = value;
    return View();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM