gpt4 book ai didi

c# - 在 .Net MVC 中,如何从 Action 之外的 URL 路由访问变量?

转载 作者:太空宇宙 更新时间:2023-11-03 11:55:48 27 4
gpt4 key购买 nike

我正在构建一个其他 Controller 可以继承的 Controller (在不重复代码的情况下跨站点提供基本功能):

public abstract class ApplicationController : Controller
{
protected ApplicationController()
{
//site logic goes here
//what is the value of agentID from the Action below??
}
}

public class AgentController : ApplicationController
{
public ActionResult Index(string agentID)
{
return View();
}
}

应用于整个站点的逻辑将进入 ApplicationController 类的构造函数。

问题在于我需要从 Action 访问参数中的值的构造函数,在本例中为 agentID(它在整个站点中都是相同的)。有没有办法读取该值?

最佳答案

操作发生在之后 构造函数。该值在构造函数中不存在(未绑定(bind))。路由数据可能在构造函数中已知,但 Action 数据绑定(bind)肯定还没有发生。在调用操作之前,您无法确定地获得此值。

可以通过以下方式在 Controller 内部访问路由数据:

ControllerContext.RouteData.Values

但是,假设agentID只能绑定(bind)路由数据是不正确的。事实上,它可能来自服务器变量、表单字段、查询字符串参数等。我的建议是在需要的地方显式传递它。如果不出意外,它会使您的单元测试变得更好。

关于c# - 在 .Net MVC 中,如何从 Action 之外的 URL 路由访问变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/557224/

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