【问题标题】:Use @Html.EditorForModel() without polluting my domain entities with mvc assembly使用 @Html.EditorForModel() 而不用 mvc 程序集污染我的域实体
【发布时间】:2012-04-10 20:10:07
【问题描述】:

是否可以使用@Html.EditorForModel() 方法但不会污染我的域实体,例如带有HiddenInputDataType(MultiLine) 等的产品。需要System.Web.Mvc 程序集的属性?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 editorformodel


    【解决方案1】:

    是的,这是可能的,但它会使用默认值来渲染。
    例如:字符串将是一行文本框。

    无法将此元数据放在其他地方。 (除非您自己编写新的 HTML 助手。)

    我们通常做的是,为每个域实体使用ViewModel,然后我们将元数据放在那里。

    【讨论】:

    • 对不起,我没有得到你的答案。我想我应该为这些东西使用视图模型,对吧?用于输入验证的视图模型?
    • @DarinDimitrov。我想如果我提到永远不要使用ViewBag,我会再次得到你的支持... :) 谢谢主人!
    • 只有当你看到 OP 错误地使用它时才值得一提 :-) 但是,是的,基本上每一篇推荐使用视图模型并推荐反对 ViewData/ViewBag 的帖子都会得到我的点赞。
    【解决方案2】:

    我通常有两种模型——一种是领域实体,另一种是具体包含我想要的属性。然后我在他们两个之间映射/复制。我有一个简单的类,可以自动将属性从一个对象复制到另一个对象,但您可以手动执行此操作或使用Automapper 之类的东西。然后你对这个新模型使用@Html.EditorFor。

    【讨论】:

      猜你喜欢
      • 2011-02-04
      • 1970-01-01
      • 1970-01-01
      • 2019-03-31
      • 2013-01-06
      • 2011-08-07
      • 2015-12-20
      • 2012-01-08
      • 1970-01-01
      相关资源
      最近更新 更多