Я пытаюсь записать параметры в домашний контроллер mvc по умолчанию, который до сих пор мне не нужно было делать, так как angular заботится обо всех видах / маршрутизации.
Причина этого в том, что я использовал angular для установки метаданных для SEO. Это не работает, так как угловая является чисто клиентской стороной. SEO должен прийти с сервера.
Мой маршрут к домашнему контроллеру - это просто уловка, так что он должен оставаться уловом, но также получать дополнительные параметры
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-адрес подобен этому
mywebsitename.com / шоумены
Я пытался
url: "*./{product}",
но это неверно. Я также изменил маршрут на
routes.MapRoute(
name: "Default",
url: "{*.}",
defaults: new { controller = "Home", action = "Index" , product = UrlParameter.Optional}
);
Но это не работает.