2016-08-02 37 views
0

我有我的ASP.NET MVC 3应用程序内的这个简单的类调用方法:ASP.NET MVC:在另一个命名空间/区域

namespace My.Project.Controllers 
{ 
    public ActionResult Settings() 
    { 
     var m = GetUserData(userID); 
     ... 
    } 

    private UserModel GetUserData(string id) 
    { 
     if (string.IsNullOrEmpty(id)) 
     { 
      return null; 
     } 
     ... 
    } 
} 

现在,我已经创建的应用程序,以容纳内部一个独立的区域API。如何在第一个命名空间中调用方法?

namespace My.Project.Areas.api.Controllers 
{ 
    public ActionResult Settings() 
    { 
     //How to call "GetUserData" from here? 
    } 
} 
+1

简短回答:您不要在其他控制器中调用操作方法。较长的回答:将共享逻辑拆分为它自己的类。 – DavidG

回答

0

不要做到这一点。私有方法应该在您的业务逻辑层中。


但是,如果你想这样做必然,做出这些改变

在第一个控制器,使函数签名公共

public UserModel GetUserData(string id) 

在第二控制器上添加这个命名空间。

using My.Project.Controllers; 

现在在方法里面写这个。

public ActionResult Settings(string id) 
{ 
    var controller = new FirstController(); //argh 
    var result = controller.GetUserData(id); 
}