2016-08-02 38 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); 
}