ASP.NET MVC 路由 - 添加站点名称?

艾哈迈德·伊利亚斯

所以,我需要让我的网站在路由中传递它:

blah.com/sitename/{controller}/{action}/{id}

“站点名称”就像一个 Vdir,但又不完全是。它将帮助我获得给定站点名称的正确数据等。

这样做的最佳方法是什么?我尝试在路由中执行此操作,但没有通过,因为它找不到页面(这是我尝试直接访问登录页面的时候):

routes.MapRoute(
                name: "Default",
                url: "{sitename}/{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );

用户将获得一个类似 blah.com/somesite 或 blah.com/anothersite 的 URL。

我只希望路由能够正常工作,但能够提取控制器周围的“某个站点”或“另一个站点”部分。

纳拉桑

首先添加一个路由Global.aspx.cs来传递一个{sitename}参数:

routes.MapRoute(
   "Sites", // Route name
   "{sitename}/{controller}/{action}/{id}", // URL with parameters
   new { sitename = "", controller = "Home", action = "Index", id = "" }// Parameter defaults
);

创建一个名为 的新控制器BaseController然后在基本控制器中添加以下简单代码:

public class BaseController: Controller
{
   public string SiteName = "";

   protected override void OnActionExecuting(ActionExecutingContext filterContext)
   {
       HttpRequestBase req = filterContext.HttpContext.Request;
       SiteName = filterContext.RouteData.Values["sitename"] as string;
       base.OnActionExecuting(filterContext);
   }
}

并在您的派生控制器中使用:

public class HomeController: BaseController
{
   public ActionResult Index()
   {
       ViewData["SiteName"] = SiteName;
       return View();
   }
}

希望这可以帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Asp.net MVC路由名称,带“-”

来自分类Dev

ASP.net MVC路由

来自分类Dev

ASP.NET MVC中的动态路由操作名称

来自分类Dev

ASP.NET MVC路由-当操作名称和网址相同时重定向到路由

来自分类Dev

在Asp.Net MVC中的路由中使用路由名称

来自分类Dev

ASP.NET MVC路由与特定操作

来自分类Dev

ASP.NET MVC属性路由

来自分类Dev

ASP.NET MVC路由的操作前缀

来自分类Dev

ASP.NET MVC路由到行动

来自分类Dev

ASP.NET MVC和AngularJS路由

来自分类Dev

ASP.net MVC路由参数

来自分类Dev

ASP.NET MVC中的区域路由

来自分类Dev

ASP.net MVC映像路由

来自分类Dev

Asp.net MVC路由问题403.14

来自分类Dev

Asp.net特定的Mvc路由

来自分类Dev

asp.net MVC中的angularJS路由

来自分类Dev

ASP.NET MVC API路由

来自分类Dev

网址路由帮助Asp.net Mvc

来自分类Dev

ASP.NET MVC条件路由

来自分类Dev

带参数的asp.net mvc路由

来自分类Dev

路由ASP.NET MVC4

来自分类Dev

ASP.NET MVC路由ASPX文件

来自分类Dev

AngularJS路由和ASP.net MVC

来自分类Dev

为什么“默认”站点路由到ASP.NET MVC中的站点根目录?

来自分类Dev

为什么“默认”站点路由到ASP.NET MVC中的站点根目录?

来自分类Dev

如何从角度路由中删除ASP.NET MVC控制器名称

来自分类Dev

没有控制器或动作名称的ASP.NET MVC路由

来自分类Dev

为什么ASP.NET MVC4在路由中添加斜杠?

来自分类Dev

在asp.net mvc 5 GET上的路由问题