开发者

reuse redundant view model code mvc

I have a master page that relies on a specific model coming from my pages. So the ending code for basically every ViewResult ends up something like this

public ActionResult Details(long store_id)
{
    var store = getStore();

    var model = new ClientModel<StoreModel>(store)
        {
            UserNotifications = new UserNotificationModel(this.CurrentUser)
        };

    return View(model);
}

Each one of my controllers derives from a BaseController, so i was looking to put this redundant code there, but I'm not really sure the best approach to take.

The structure for my generic ClientModel is this...

public class ClientModel<T> : ClientModel {}

public class ClientModel {}

Clarification The StoreModel is generic and a lot of other actions use a diffe开发者_StackOverflow社区rent view model. I just wanted to show based on how it looks when impelmented.


protected ViewResult ClientModelView<T>(T model)
{
    var clientModel = new ClientModel<T>(model)
        {
            UserNotifications = new UserNotificationModel(CurrentUser)
        };

    return this.View(clientModel);
}


Check out my similar question.

Basically, you create a base controller:

public class BaseController : Controller
{
    public Model GetModel() {}
}

Then all your controllers inherit from the base:

public class NewController : BaseController
{

    public ActionResult Details(long store_id)
    {

        var model = GetModel();

        return View(model);
    }

}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜