从c#中的另一个Controller获取Controller的值

时间:2014-10-29 14:16:58

标签: c# model-view-controller

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

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

如何从CController访问测试。

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

3 个答案:

答案 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