MVC有很好的工具,可以使用路由在MVC应用程序中构建URL。通过控制器和动作进行路由可以避免在标记中使用硬编码URL。
但我们有一堆辅助服务需要为营销电子邮件创建网址。
例如,我们的电子邮件营销活动可能需要为优惠建立网址。 MVC应用程序知道如何构建提供详细信息的URL,但有一种聪明的方法为服务应用程序执行此操作吗?我们是否应该将路由移动到单独的dll并从一个地方引用它?
赞赏成功故事/恐怖故事。
答案 0 :(得分:0)
听起来你应该使用catchall url来查找你可以在DB中管理的动作,例如:
像这样的路线
routes.MapRoute(
"MailCampaigns",
"/mailcampaigns/{*url}",
new {controller = "MailCampaigns", action = "Incoming" }
);
public ActionResult Incoming(string url)
{
//parse the url and perform actions accordingly
var actionInfo = repository.Query<ActionInfo>().Where(x => x.Url == url).SingleOrDefault();
return Redirect(actionInfo.TargetUrl);
}