gpt4 book ai didi

c# - ASP.NET MVC : Carrying a value around from page to page

转载 作者:行者123 更新时间:2023-11-30 22:44:14 24 4
gpt4 key购买 nike

tldr> 一旦选择了客户,所有其他 Controller 如何始终在该客户的“上下文”中执行他们的操作,而无需手动传递 ID?

我试图找出“正确”的方法是处理一个完整的 Controller (或多个)都依赖于前一个 Controller 的想法的情况。例如,假设您正在构建某种客户管理系统。会有各种各样的客户功能,可能位于 CustomerController 上。但是当您进入订单管理时,您可能希望拥有一个 OrderController。

如果您只有一个 OrderController,您的方法可能如下所示:

公共(public) ActionResult 编辑(字符串 ID){...}

id 应该是订单的 id,对吗?当我需要回到客户身边时,我会有点迷失。这就像发生的所有操作的“上下文”都在客户内部。您可以通过始终将客户 ID 添加到操作(URL)中来做到这一点:

http://site.com/Orders/Edit/1234?customerId=abc

但是,捕获该值并将其塞入每个操作似乎变得非常乏味。有 Session 之类的选项,但这看起来很草率。

正确的做法是什么?

最佳答案

您可以通过在 session 周围编写一个包装器来减少一般 session 的草率,它会公开强类型的属性。

//Sloppy weak typing:
int userId = (int)HttpContext.Current.Session["UserId"];

//Strongly typed goodness
int userId = SessionWrapper.UserId;

关于c# - ASP.NET MVC : Carrying a value around from page to page,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3508420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com