我在c#中有三个控制器类。说AController,BController,CController。 我曾经使用AController设置BController私有成员的值。
public BController{
string test = "";
public BController(string input)
{
this.test = input;
}
}
如何从CController访问测试。
任何方法,而不是将成员指定为静态变量
答案 0 :(得分:1)
您可以将重定向返回给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
}
}
}
答案 1 :(得分:0)
您可以使用“属性”模式
来获取和设置私有字段的值public string TestB {
get {return this.test;}
set {this.test = value;}
}
答案 2 :(得分:0)
您的问题未指定您使用的技术。因此,我的第一个建议是基于普通的C#类。
test属性是私有字段,无法在类外访问。您可以通过财产公开它。如果要使用当前程序集访问该字段,可以将该字段设置为内部字段。请查看Access Modifier以获取更多信息。我建议你使用一个属性,因为它可以让你有更多的控制权。
private string test;
public string Test
{
get{return test;}
set{test=value'}
}
如果您正在使用MVC,那么您可以使用TempData。 TempData是从TempDataDictionary类派生的字典。它用于存储仅为以下请求所需的数据。有关更多信息,请参阅TempData