我目前正在开发一个内容管理的多租户应用程序,它将有一个可访问的管理页面集和一个面向公共的页面集。我不太担心管理访问页面,因为我将有一个单一的管理URL,所有用户使用登录到管理区域。我要问的是面对网页的公众。
如果我们设想管理页面允许您创建和管理一组按学校分组的大学网站的内容,而面对这些内容的公众只需显示这些内容。
我已设置了下列途径,以处理公众面对网页的访问:
routes.MapRoute(
name: "Site",
url: "{schoolName}/{collegeName}/{controller}/{action}/{id}",
defaults: new { schoolName = "Oxford", collegeName = "Balliol", controller = "Home", action = "Index", id = UrlParameter.Optional }
);这很好,并没有问题地调用以下控制器操作:
public class HomeController
{
public ActionResult Index(string schoolName, string collegeName)
{
return View();
}
}但是,我想知道是否有一种方法可以让它正常工作,而不必始终接受schoolName和collegeName作为控制器操作中的参数?如果在我为面对页面的公众创建的每一个动作中都必须接受这些参数,我就会发现这将成为一个问题。
我正在考虑创建一个PublicFacingController,所有面向公共的页面都继承它,其中包含学校名称和大学名称的属性。但我不知道如何填充它们,以便在不将它们作为参数传递给操作的情况下在派生控制器中使用。
发布于 2015-02-05 11:24:14
您可以访问基本控制器中的Controller.Request属性以获取学校和大学的值。
https://stackoverflow.com/questions/28342473
复制相似问题