首页 文章

如何使用服务类中的路由表获取URL?

提问于
浏览
0

我正在编写一个asp.net MVC 5应用程序,并且有一个从控制器调用的服务类 . 在服务中,我正在根据一些查询数据加载DTO,并希望使用与我在Razor代码中的方式类似的路由来构建URL . @ Url.Action(“RequestData”,“Home”,new

如何让MVC使用类中的路由表来构建我的URL而无需访问基本控制器类?

例:

public class MyDataService : IMyDataService
{
   private readonly MyDataContext _context;

public MyDataService()
: this(new MyDataContext())
{
}

public MyDataService(MyDataContext ctx)
{
   if (ctx != null)
      _context = ctx;
}

public List<MyDTO> LoadDTOInfo(int id)
{
   var people = _context.People.ToList();
   var list = new List<MyDTO)();    

   foreach(var person in people)
   {
      var dto = new MyDto{
      MyUrlLink = ...??? // controller/action/+person.Id;
   };       

   list.add(dto);
   }        
   return list;  
}

}

使用@alisabzevari答案:

UrlHelper helper = new UrlHelper();

helper.Action(“ActionName”,“Controller”,new );

1 回答

  • 1

    您可以实例化 UrlHelper 类 . Url 在razor视图和控制器都是 UrlHelper 类的实例 . 此类具有 Action 方法,您可以使用它根据路由生成URL .

相关问题