- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我见过 SelectListItem[]
的用法在 BL、DAL 等不在 aps.net MVC 项目中的级别。
我倾向于使用任何 IEnumerable<KeyValuePair<string, string>>
的东西相反,例如Dictionary<string,string>
比较Creating the IEnumerable<KeyValuePair<string, string>> Objects with C#?
我的理由是不添加对 Web.MVC
的额外依赖不需要时和SelectListItem
属于 MVC 上下文,因为它比 IEnumerable<KeyValuePair<string, string>>
重
这些是合理的理由还是应该考虑与上述相反的观点。
是否有任何知名校长更喜欢其中一个,例如是否有原则在不需要时减少依赖性?
最佳答案
针对接口(interface)编程将有助于解耦组件并提高大型系统中的可重用性。
当您看到返回 IEnumerable<T>
的方法签名时,想一想它对您说了什么而不是 IList<T>
.
您知道设计者希望您枚举结果,并且您可以合理地假设他们不打算让您就地改变结果。
在设计一个新的组件或库时,我首先会问自己我期望方法的任何一侧的行为。调用者是否真的需要提供 int[]
,或者我可以用 IEnumerable<int>
来度过难关吗? ?
此外,如果我需要数组,是否意味着我在向消费者强加意见? “你应该总是给我一个数组,因为我认为数组更好。”
同时,如果方法签名采用IDictionary<TKey, TValue>
, 我可以很容易地交换一个 Dictionary<TKey, TValue>
对于 ImmutableDictionary<TKey, TValue>
如果我决定我的代码将从一些新的(大概)不可变集合中受益。
至于要不要减少依赖,我觉得是你们团队结合项目需求去思考的问题。但在适用和有益的地方用接口(interface)替换具体类型的问题:去做吧。
关于c# - ASP.net mvc 中非 UI 级别的 SelectListItem[] 替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43839590/
我正在尝试为用户填写一个表单以注册到 asp.net MVC 网站,我正在努力让下拉列表正确显示文本。该模型具有以下内容: public SelectList CountiesList; 在构造函数中
我正在将现有的 MVC3 应用程序从 InProc 移动到 ASP.Net session 状态服务。其中一个模型对象具有此属性: public List StateCodes { get; set;
我有一个带有常量的静态类,我想将其存储在一个列表中,以便在 DropDown 中使用 public static class DateFormatConstant { [Display(Nam
我正在尝试从 selectlistitem 中删除一个项目。到目前为止,我还没有取得任何成功 代码截图如下 使用 System.Collections.Generic; List ab
问题 我目前正在向我的 MVC 项目添加自动映射,但我遇到了困难。现在我有一个用户模型用于表示数据库中的数据。我必须将该模型映射到将在调用 Edit 方法时使用的 EditUserModel。 Edi
我正在尝试从数据库中填充下拉列表, 我正在关注这个 link 我在模型中写了如下代码 public class FillDeptName { public IList Drp_Name { g
我有以下类(class): public static IEnumerable GetDatastore() { return new[] { new
我有以下代码,但我有错误 Error 6 foreach statement cannot operate on variables of type 'int' because 'int' does
我有一个这样的对象: public class AppointmentStatus { public int Id {get;set;} public string I18NKey
我在从 SelectListItem 获取选定值时遇到问题。 这是我的模型: public class GiveCourseNameModel { public string Selected
忙于为 Controller 编写单元测试,该 Controller 生成一个 View 模型,其中包含一个选项列表,如 IEnumerable 。我尝试检查预期列表是否包含 View 模型中的所有列
我正在尝试将一个项目添加到 IEnumerable SelectList。我有一个填充我的列表的初始查询,然后我有一个查询来检查是否存在名为“INFORMATIONAL”的项目。如果没有,我需要将它添
我正在尝试为下拉列表获取不同的值,但是当使用以下语法时,它会返回所有行。 有人可以告诉我如何使用正确的语法获取不同的值集吗? IEnumerable ldidList = _db.TrafficHit
这里有一个棘手的问题。我正在尝试将列表项转换为 IEnumerable . 列表 dynamicTextInDatabase只需返回我的数据库中使用的所有枚举。目前只返回 1 和 2。数据类 simp
我有一个 asp.net-mvc 网页,我想显示一个基于枚举的下拉列表。我想显示每个枚举项的文本和 id 是与枚举关联的 int 值。有什么优雅的方法可以进行这种转换吗? 最佳答案 您可以使用 LIN
无论如何,Automapper 是否可以忽略某种类型的所有属性?我们正试图通过验证 Automapper 映射来提高我们代码的质量,但不得不输入 .Ignore()所有 IEnumerable总是手动
public IEnumerable GetList(int? ID) { return from s in db.List orderby s.Descrip
这个问题与 ASP.NET MVC 2 RC(12 月下降)有关。基本问题是,当创建具有默认选定值的下拉列表时,“selected”属性要么未呈现为 HTML,要么归因于错误的选项。 下面是一些演示错
retval.AddRange(oldList.Union(newList)); oldList 和newList 都在这里声明 List oldList = new List(); List new
我在这里拉扯我的头发。我正在使用 DropDownListFor MVC3 中带有枚举的 HTML 帮助器,如下所示: @Html.DropDownListFor(model => model.Tit
我是一名优秀的程序员,十分优秀!