在MVC 5应用程序中,我想接受两种不同的请求URL:
http://www.myapp.com/brand/controller/action
http://www.myapp.com/controller/action
这两个URL都应该指向控制器操作。
我尝试在其中加入可选参数品牌,但没有运气。
RouteTable.Routes.MapRoute(
"default",
"{brand}/{controller}/{action}",
new { brand = UrlParameter.Optional, controller = "Home", action = "Index" });
显然在控制器之前不允许使用可选参数。
有什么想法吗?
答案 0 :(得分:0)
感谢您的评论,Stephen。
我想要的是将可选参数品牌注入URL,品牌应该是一些字符串值,但在这里我想忽略它并指示正确的控制器动作。
好吧,我找到了一个可能对这种情况有用的函数:
RouteTable.Routes.MapMvcAttributeRoutes();
但问题是我必须为每个控制器操作添加Route属性,例如:
public class LoginController : Controller
{
[HttpGet]
[Route("~/{brand}/Login")]
[Route("~/Login")]
public ActionResult Index()
{
return View();
}
}
也许我需要找一些如何使用属性路由的例子。