在视图中优雅地显示由 ID 映射的数据对象

发布于 2024-09-12 03:29:25 字数 569 浏览 3 评论 0原文

我有很多支持案例用户。每个案例都分配给一个具有唯一ID的用户。我的数据模型使用 AssignedUser 用户 ID 引用来表示这一点。这很容易存储和检索,但不方便展示。

当我想要显示案例列表时,用户属性应格式化为用户的用户名而不是其 ID,但此信息在案例内不可用。在案例存储库中检索用户名很困难,因为它是由单独的用户存储库提供的。

目前,我正在通过为案例的 AssignedUser 属性创建一个 DisplayFor(...) 模板,并在 OnActionExecuting 的 HttpContext 中构建用户字典来实现此目的,即然后由模板引用并转换为用户名。这工作得相当好,但是按照这种方法,我在每次请求时都使用许多并不总是必需的字典(分支、产品等)填充 HttpContext。

本能地,我应该在视图模型中传递用户数据,但这意味着正确检索它。 ASP.NET-MVC 中的最佳实践是什么,而不执行不必要的查询并使用无用的数据填充 HttpContext?

I have a bunch of support Cases and Users. Each Case is assigned to a User with a unique ID. My data model represents this with an AssignedUser user ID reference. This is easy to store and retrieve, but not convenient to display.

When I want to display a list of Cases, the user property should be formatted as the user's username and not their ID, but this information is not available inside the case. It is difficult to retrieve usernames inside the case repository, since it is provided by a separate user repository.

At the moment, I am doing it by creating a DisplayFor(...) template for a case's AssignedUser property and building a dictionary of users in the HttpContext at OnActionExecuting which is then referenced by the template and translated to a username. This works fairly well, but following this approach, I am populating the HttpContext at every request with a number of dictionaries (Branches, Products, etc.) that are not always necessary.

Instinctively, I should pass the user data in the view model, but that means retrieving it properly. What is the best-practice in ASP.NET-MVC without doing unnecessary queries and populating the HttpContext with useless data?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眼趣 2024-09-19 03:29:25

我最终使用 AutoMapper 填充视图模型以进行显示,并将用户 ID 映射到用户名等。

I ended up using AutoMapper to populate view models for display and map user IDs to user names, et cetera.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文