一種方法是創建使用類繼承,但是有沒有其他方法可以重用我在另一個控制器中的一個控制器中創建的方法?ASP.NET核心 - 如何重用在另一個控制器中的一個控制器中創建的方法?
編輯:我應該使用這樣的自定義基礎控制器嗎?
public class BaseController : Controller
{
private readonly ApplicationDbContext _context;
private readonly IIdentityService _identityService;
public BaseController(ApplicationDbContext context, IIdentityService identityService)
{
_context = context;
_identityService = identityService;
}
public BaseController()
{
}
//reusable methods
public async Task<Account> GetAccount()
{
//code to do something, i.e query database
}
}
public class MyController : BaseController
{
private readonly ApplicationDbContext _context;
private readonly IIdentityService _identityService;
public MyController(ApplicationDbContext context, IIdentityService identityService)
{
_context = context;
_identityService = identityService;
}
public async Task<IActionResult> DoSomething()
{
var account = await GetAccount();
//do something
Return Ok();
}
}
你不想這樣做。 – CSharper
這可能會有幫助。 https://softwareengineering.stackexchange.com/questions/264392/is-a-good-practice-to-call-a-controller-function-from-another-controller。如果你仍然堅持,那麼更乾淨的方法是使用「RedirectToAction」。 –