为MVC应用*和*支持应用构建URL

时间:2011-06-17 13:46:48

标签: asp.net-mvc-3 routing

MVC有很好的工具,可以使用路由在MVC应用程序中构建URL。通过控制器和动作进行路由可以避免在标记中使用硬编码URL。

但我们有一堆辅助服务需要为营销电子邮件创建网址。

例如,我们的电子邮件营销活动可能需要为优惠建立网址。 MVC应用程序知道如何构建提供详细信息的URL,但有一种聪明的方法为服务应用程序执行此操作吗?我们是否应该将路由移动到单独的dll并从一个地方引用它?

赞赏成功故事/恐怖故事。

1 个答案:

答案 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);

}