"模型绑定"的反义词是什么?或者"价值提供者"在MVC中它是可扩展的吗?

时间:2014-12-15 16:43:33

标签: asp.net-mvc asp.net-mvc-5

在其他情况下,我习惯于"绑定"推断数据到/从对象的双向移动。换句话说,我们可以将数据从一个对象移动到一个html表单序列化'反之,'反序列化'。但是,模型绑定器和值提供程序似乎只负责从http请求填充对象 - 反序列化部分。管道的哪个部分负责从对象获取数据并将其序列化为表单或其他http响应?或者它只是停留在' Html.TextBoxFor'效用

我相信我可以创建一个自定义的InputExtension,但这似乎有点过分 - 默认情况下我需要的大部分内容除了它抓取属性的值时。我也可以创建一个不同的模型,但这也是我试图避免的。

是否有可扩展点,我可以管理从模型到html输入的值提取?

1 个答案:

答案 0 :(得分:0)

当我看到这样的问题时,我通常会犹豫不决,因为这个问题可能比乍看之下更多。您的模型可能代表存储在数据库中的内容,这意味着您需要在存储内容和显示内容之间存储转换层。您通常不希望模型按原样显示给用户,因此在MVC框架上开发时通常使用视图模型。

这里最常用的方法是:

  1. 使用视图模型来帮助渲染视图,
  2. 使用映射图层在模型和视图模型之间移动数据
  3. 将请求和显示分隔到不同的视图模型中,因为它们会有不同的UI问题
  4. 有了这些部分,您可以自然地进行模型绑定,而无需进行自定义框架。

    AutoMapper等图书馆将是您的朋友。有一点学习曲线,但值得。