【发布时间】:2019-10-01 11:50:00
【问题描述】:
我正在尝试将参数捕获到默认的家庭 mvc 控制器中,到目前为止我不需要这样做,因为 Angular 正在处理所有视图/路由。
这是因为我使用 Angular 为 SEO 设置元数据。这不起作用,因为角度纯粹是客户端。 SEO 必须来自服务器。
我的主控制器路由就是这个,现在是一个catch,所以它需要保持一个catch all但还要接收任何额外的参数
routes.MapRoute(
name: "Default",
url: "{*.}",
defaults: new { controller = "Home", action = "Index" }
);
所以我可以像这样在 url 中捕获一些东西,即“产品”
public ActionResult Index(string product = "")
{
var meta = new MetaData
{
Title = "Test",
Description = "Desc1",
Keywords = ""
};
return View("Index",meta);
}
我不能使用类似的东西
url: "{controller}/{action}/{id}",
因为它会期望我的其他页面的视图/控制器由 angular 处理。
所以我需要一个默认路由,只要 url 像这样,它就会使用 home 控制器
mywebsitename.com/showmen
我试过了
url: "*./{product}",
但这是无效的。我也把路线改成了
routes.MapRoute(
name: "Default",
url: "{*.}",
defaults: new { controller = "Home", action = "Index" , product = UrlParameter.Optional}
);
但这不起作用。
【问题讨论】:
-
我有一个解决方案,很快就会发布。
标签: asp.net angularjs model-view-controller routing