【问题标题】:ASP.NET MVC: Call method in another namespace / area [duplicate]ASP.NET MVC:在另一个命名空间/区域中调用方法[重复]
【发布时间】:2016-08-02 09:22:21
【问题描述】:

我的 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?
    }
}

【问题讨论】:

  • 简短回答:您不会在其他控制器中调用操作方法。更长的答案:将共享逻辑拆分到它自己的类中。

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


【解决方案1】:

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


但是,如果您想这样做,请进行这些更改

在第一个控制器中,公开函数签名

public UserModel GetUserData(string id)

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

using My.Project.Controllers;

现在在方法里面写这个。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    • 2016-01-03
    • 2019-06-02
    • 1970-01-01
    • 1970-01-01
    • 2021-01-06
    • 1970-01-01
    相关资源
    最近更新 更多