如何使用服务 Class 中的路由表获取 URL?
How to get a URL using routing tables from a Service Class?
我正在编写一个 asp.net MVC 5 应用程序,并且有一个从控制器调用的服务 class。在该服务中,我正在根据一些查询数据加载 DTO,并希望使用与我在 Razor 代码中所做的类似的路由来构建 URL。
@Url.Action("RequestData", "Home", new {area = "MyArea"})
如何让 MVC 使用来自 class 的路由表构建我的 URL 而无需访问基本控制器 class?
示例:
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 助手 = new UrlHelper();
helper.Action("ActionName","Controller",新{区域="area"});
您可以实例化一个 UrlHelper
class。 Url
在 razor 视图和控制器都是 UrlHelper
class 的实例。这个 class 有 Action
方法,你可以用它来生成基于路由的 url。
我正在编写一个 asp.net MVC 5 应用程序,并且有一个从控制器调用的服务 class。在该服务中,我正在根据一些查询数据加载 DTO,并希望使用与我在 Razor 代码中所做的类似的路由来构建 URL。 @Url.Action("RequestData", "Home", new {area = "MyArea"})
如何让 MVC 使用来自 class 的路由表构建我的 URL 而无需访问基本控制器 class?
示例:
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 助手 = new UrlHelper();
helper.Action("ActionName","Controller",新{区域="area"});
您可以实例化一个 UrlHelper
class。 Url
在 razor 视图和控制器都是 UrlHelper
class 的实例。这个 class 有 Action
方法,你可以用它来生成基于路由的 url。