【发布时间】:2011-06-21 09:31:16
【问题描述】:
我希望自动映射器为视图模型生成 URL。例如,这是我的数据对象:
public class User
{
public int Id { get; set; }
public int Name { get; set; }
}
视图模型如下所示:
public class UserListItem
{
public string Name { get; set; }
public string EditUrl { get; set; }
}
我希望使用为应用程序定义的路由生成EditUrl 属性。
类似这样的:
listIten.EditUrl = Url.Action("Edit", "UserController", new { id = user.Id });
似乎没有办法让 AutoMapper 做到这一点。没有 RequestContext、UrlHelper 或任何可用于映射表达式的东西,而且在调用 Mapper.Map 时我还没有找到任何传递上下文的方法。
我错过了什么吗?还是一开始就想这样做是个坏主意?
更新:附加背景
我正在研究为 MVC 视图生成 URL 的替代方法,目的是使 ASP.NET MVC 应用程序维护尽可能简单。在映射视图模型时生成 URL 是替代方法之一。很容易测试和清理视图。在某些情况下,它还将促进视图的可重用性。在尝试这个想法时,我遇到了 AutoMapper 无法接受 Map 操作的任何(动态)上下文的砖墙。
【问题讨论】:
-
@paolo 不,这不是一个重复的问题。我不是在寻求一种方法来获取视图模型中的请求上下文。不过,这可能是解决方案的开始。
标签: c# asp.net-mvc automapper