在MVC中存储/调用重复代码块

Mar*_*ark 1 c# asp.net-mvc dry asp.net-mvc-2

嘿所有,再次抱歉.这次我有一个我认为相当普遍的问题.我在控制器中一遍又一遍地使用几乎完全相同的代码来设置viewModel.我的问题是,有没有办法在MVC项目中的某处存储此代码,可能让它返回一个viewModel,并在同一个项目中从控制器调用它.

我想跟随干,但似乎无法找到任何资源.提前致谢!

Chr*_*ken 7

您可以创建一个基本控制器来完成您的工作,然后从所有控制器继承并调用您想要重用的方法.

public abstract class BaseController : Controller
{
    protected BaseController()
    {

    }

    protected void PopulateViewModel()
    {
        //code to populate view model here
    }
}

public class MyController : BaseController
{
    [HttpGet]
    public virtual ActionResult myAction()
    {
        PopulateViewModel();
        //do more stuff
    }
}
Run Code Online (Sandbox Code Playgroud)