Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 什么';这是MVC中的一个模型。我是否应该将其理解为视图在其中包含的数据方面的反映?_Asp.net Mvc_Model View Controller - Fatal编程技术网

Asp.net mvc 什么';这是MVC中的一个模型。我是否应该将其理解为视图在其中包含的数据方面的反映?

Asp.net mvc 什么';这是MVC中的一个模型。我是否应该将其理解为视图在其中包含的数据方面的反映?,asp.net-mvc,model-view-controller,Asp.net Mvc,Model View Controller,所以,模型应该被认为是视图在数据方面的反映。例如,联系人表单的模型是:姓名、电子邮件地址、网站名称和描述?这在概念上正确吗 谢谢 V.是的,这是模型的一种情况。模型也可以是业务域规则 发件人: 该模型管理应用程序域的行为和数据, 响应有关其状态的信息请求(通常来自 视图),并响应更改状态的指示(通常从 控制器)。在事件驱动系统中,模型通知观察者 (通常是视图)当信息发生变化以便他们能够做出反应时 您所解释的基本上是一个视图模型:一个为一个视图定制的模型。但是模型的定义是将信息发送到数据库、执行业

所以,模型应该被认为是视图在数据方面的反映。例如,联系人表单的模型是:姓名、电子邮件地址、网站名称和描述?这在概念上正确吗

谢谢
V.

是的,这是模型的一种情况。模型也可以是业务域规则

发件人:

该模型管理应用程序域的行为和数据, 响应有关其状态的信息请求(通常来自 视图),并响应更改状态的指示(通常从 控制器)。在事件驱动系统中,模型通知观察者 (通常是视图)当信息发生变化以便他们能够做出反应时


您所解释的基本上是一个视图模型:一个为一个视图定制的模型。但是模型的定义是将信息发送到数据库、执行业务功能的对象,并且只是应用程序的域的表示。

一般来说,。有时这很乏味,但“视图”模型与视图的比例为1:1时效果很好,可以将关注点分开

public class ContactFormViewModel
{
    public string Name { get; set; }
    public string Email { get; set; }
    public string WebsiteName { get; set; }
}
如果要使用Visual Studio的(假设MVC版本3和Razor语法)内置支架生成继承此视图模型的视图,它将如下所示:

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>ContactFormViewModel</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.Name)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Name)
            @Html.ValidationMessageFor(model => model.Name)
        </div>
    ...
@使用(Html.BeginForm()){
@Html.ValidationSummary(true)
ContactFormViewModel
@LabelFor(model=>model.Name)
@EditorFor(model=>model.Name)
@Html.ValidationMessageFor(model=>model.Name)
...
这给了你一些东西:

  • 一点CSS样式(同样,只是默认的模板)
  • 验证
  • 1型号在联系人表单逻辑更改时进行修改
  • 是的

    在MVC应用程序中查看模型有两种方法。这两种方法有很多重叠,但不一定相同

    • 视图模型--包含要在视图中创建、删除、编辑或显示的数据模型

    • 实体模型--包含数据源中的数据集模型,该数据集将在视图中创建、删除、编辑或显示

    正如您所看到的,在大多数情况下,这都是一样的。在某些情况下,视图模型的想法更有意义