从c#中的另一个控制器获取控制器的值

本文关键字:控制器 获取 另一个 | 更新日期: 2023-09-27 18:28:28

我在c#中有三个控制器类。说A控制器、B控制器、C控制器。我曾经使用AController设置BController的私有成员的值。

public BController{
string test = "";
public BController(string input)
{
this.test = input;
}
}

如何从CController访问测试。

任何方法,而不是将成员分配为静态变量

从c#中的另一个控制器获取控制器的值

您可以返回到CControllerAction的重定向。

public class BController()
{
    public ActionResult BControllerAction()
    {
         return RedirectToAction("CControllerAction", "CController", new { param = "some string" })
    }
}
public class CController()
{
    public ActionResult CControllerAction(string param)
    {
         if(!String.IsNullOrEmpty(param))
         {
            //do smth
         }
    }
}

您可以使用Properties模式获取和设置私有字段的值

public string TestB {
    get {return this.test;}
    set {this.test = value;}   
}

您的问题没有具体说明您正在使用的技术。因此,我的第一个建议是基于普通的C#类。

测试属性是一个专用字段,不能在类之外访问。您可以通过属性公开它。如果要使用当前程序集访问该字段,则可以将其设置为内部字段。有关详细信息,请查看Access Modifier。我建议你使用一处房产,因为它能给你更多的控制权。

private string test;
public string Test
{
 get{return test;}
 set{test=value'}
}

如果你正在使用MVC,那么你可以使用TempData。TempData是一个派生自TempDataDictionary类的字典。它用于存储仅用于以下请求的数据。有关更多信息,请参阅TempData