其他分享
首页 > 其他分享> > CodeGo.net> MVC4动态控制器路径?

CodeGo.net> MVC4动态控制器路径?

作者:互联网

我的MVC4项目中有一个SiteController类,“站点” URL工作正常,但是我需要在“站点”之后有一个动态URL部分,我需要该URL看起来像这样:

mysite.com/Site/{DYNAMICSTRING}/用户(或其他)

{DYNAMICSTRING}可以是子站点的名称,因此控制器应检查该子站点在数据库中是否确实存在.

现在,我正在使用查询字符串,但这不是我的客户想要的.

我怎样才能做到这一点?

额外细节

我的路线:

    routes.MapRoute(
                "Subdomain",                                              // Route name
                "{controller}/{action}/{dynamicString}",                           // URL with parameters
                new { controller = "Site", action = "Subdomain" }  // Parameter defaults
            );

我的控制器:

    public ActionResult Subdomain(string dynamicString)
    {
        return View();
    }

导航到/ Site / Subdomain / SomeString时,dynamicString的值为null

解决方法:

您必须配置路由.例如,如果您有Homecontroller:

    public class HomeController:Controller
    {
        public ActionResult Subdomain(string dynamicString)
        {
            return View();
        }
    }

那么你必须配置你的路由这样的

routes.MapRoute(
            "Subdomain",                                              // Route name
            "{controller}/{action}/{dynamicString}/anyOtherParams",                           // URL with parameters
            new { controller = "Home", action = "Subdomain", dynamicString = "" }  // Parameter defaults
        );

标签:asp-net-mvc-4,asp-net-mvc-routing,c,asp-net-mvc
来源: https://codeday.me/bug/20191031/1974010.html