作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
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/
我是一名优秀的程序员,十分优秀!