ASP.NET MVC:另一个名称空间/区域中的调用方法

时间:2016-08-02 09:22:22

标签: c# asp.net asp.net-mvc

我的ASP.NET MVC 3应用程序中有这个简单的类:

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

答案 0 :(得分: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);
}