我在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
);