asp.net-mvc-3 – 大量使用ViewBag

前端之家收集整理的这篇文章主要介绍了asp.net-mvc-3 – 大量使用ViewBag前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的MVC应用程序中大量使用ViewBag,这被认为是不好的做法吗?我不确定是否花时间创建viewmodel(但我认为它更适合MVVM而不是MVC)或继续大量使用ViewBag.支持反对的理由是什么?示例控制器方法将返回它的模型(通常是一个简单的域实体)以及以下对ViewBag的调用
ViewBag.TotalItems = data.Count();
        ViewBag.FilteredItems = gridFilters;
        ViewBag.Action = "Events";
        ViewBag.Area = "People";
        ViewBag.EntityID = person.EntityID;
        ViewBag.OrganisationID = ID;
        ViewBag.Name = string.Format("{0} {1}",person.FirstName,person.LastName);
        ViewBag.IsEnabled = person.IsEnabled;
        ViewBag.EntityID = person.EntityID;
        ViewBag.Favourited = users.IsOnUserFavourites(person.EntityID);

        ViewBag.Columns = userColumns;

        ViewBag.Title = "Person : " + string.Format("{0} {1}",person.LastName) + " - Events";

解决方法

像这样的问题通常会得到双方的答案.很多人觉得像这样使用ViewBag是一个糟糕的设计(包括我自己).它使您的控制器不易测试.您的观点不是强类型等.

使用viewmodel通常是一种很好的做法.不要让您的模型成为域模型,而是创建特定于您正在显示的视图的模型.这样,它可以100%定制,以满足您对此特定视图的需求.一旦你这样做,你会发现你真的不需要使用ViewBag.它有时可以创建许多额外的代码(每个视图一个视图模型),但代码非常简单,对一个视图进行更改不会破坏任何其他视图.

原文链接:https://www.f2er.com/aspnet/245485.html

猜你在找的asp.Net相关文章