Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.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 - Fatal编程技术网

Asp.net mvc MVC自定义模型-哪里有一个简单的示例?

Asp.net mvc MVC自定义模型-哪里有一个简单的示例?,asp.net-mvc,Asp.net Mvc,我需要制作一个web应用程序,我想使用MVC。但是,我的模型不能是标准模型之一——数据不存储在数据库中,而是存储在只能通过API访问的外部应用程序中。由于这是我实现的第一个MVC应用程序,我依靠示例来理解如何实现它。我找不到任何非基于DB的模型的例子。自定义模型的示例也可以。有人能给我指出这样一只野兽吗?也许MVC只是一个新概念,并不存在 看起来我可能可以不使用数据集模型,但是我还没有看到任何关于如何使用这个对象的示例。我希望一个DataSet的例子也能对我有所帮助。(也许是同一件事?) 请注意

我需要制作一个web应用程序,我想使用MVC。但是,我的模型不能是标准模型之一——数据不存储在数据库中,而是存储在只能通过API访问的外部应用程序中。由于这是我实现的第一个MVC应用程序,我依靠示例来理解如何实现它。我找不到任何非基于DB的模型的例子。自定义模型的示例也可以。有人能给我指出这样一只野兽吗?也许MVC只是一个新概念,并不存在

看起来我可能可以不使用数据集模型,但是我还没有看到任何关于如何使用这个对象的示例。我希望一个DataSet的例子也能对我有所帮助。(也许是同一件事?)

请注意:我已经看到了无数自定义绑定的示例。这不是我想要的。我需要一个没有绑定到特定数据库/表的自定义模型的示例

更新

我在MS中找到了一个很好的例子:

虽然这是我问题的“答案”,但我并不真正喜欢它,因为它将我与微软的世界观联系在一起@Aaronaught、@jeroenh和@tvanfosson从元的角度给出了更好的答案,从而推动了我(和你的?)对MVC的理解


我把支票交给@Aaronaught,因为他实际上有示例代码(我要求的)。谢谢大家,如果你有更好的答案,请随意添加。

我认为你要找的其实是一个非DB服务层。模型通常是相对简单的数据容器,尽管它们也可能包含业务逻辑。听起来您真正拥有的是一个要与之通信的服务,并且需要一个层在服务和应用程序之间进行调解,从服务返回的数据生成适当的模型类


可能会有帮助,但您需要用与服务交互的类(而不是DB)替换存储库。

MVC中的“模型”应该是什么没有固定的规定,只是它应该包含需要在屏幕上显示的数据,并且可能还需要操作

在设计良好的MVC应用程序中,数据访问以某种方式被抽象出来,通常使用某种形式的存储库模式:您定义一个抽象层(例如,一个IRepository接口),该层定义获取和持久化数据所需的契约。实际实现通常会调用数据库,但在您的情况下,应该调用“服务API”


在大多数情况下,实际应用程序数据的支持源是什么并不重要;模型应该完全相同。事实上,使用存储库之类的东西的主要原因之一是,您可以轻松地更改底层存储

例如,我有一个使用大量web服务的MVC应用程序,除了身份验证和用户配置文件等简单的事情外,它很少访问本地数据库。典型的模型类可能如下所示:

[DataContract(Namespace = "http://services.acme.com")]
public class Customer
{
    [DataMember(Name = "CustomerID")]
    public Guid ID { get; set; }

    [DataMember(Name = "CustomerName")]
    public string Name { get; set; }
}
public interface ICustomerRepository
{
    Customer GetCustomerByID(Guid id);
    IList<Customer> List();
}
然后,我将有一个如下所示的存储库界面:

[DataContract(Namespace = "http://services.acme.com")]
public class Customer
{
    [DataMember(Name = "CustomerID")]
    public Guid ID { get; set; }

    [DataMember(Name = "CustomerName")]
    public string Name { get; set; }
}
public interface ICustomerRepository
{
    Customer GetCustomerByID(Guid id);
    IList<Customer> List();
}
我想说的是,这与任何特定的数据库无关。在这种情况下,一个可能的来源是WCF服务;另一个是磁盘上的文件。两者都不一定有一个兼容的“模型”。在本例中,我假设WCF服务公开了一个我可以使用
DataContract
属性直接映射到的模型,但Linq到XML版本是纯API;没有模型,都是自定义映射

真正的好的域模型实际上应该完全独立于真正的数据源。当人们告诉我LINQtoSQL或实体框架模型足以在整个应用程序/站点中使用时,我总是有点怀疑。通常,这些与“人类”模型不匹配,简单地创建一堆
ViewModel
类并不一定就是答案


从某种意义上说,如果没有现有的关系模型,实际上会更好。它迫使您真正考虑应用程序的最佳域模型,而不一定是最容易映射到某个数据库的域模型。因此,如果您还没有数据库中的模型,请构建一个!只需使用POCO类并在必要时使用属性进行修饰,然后创建将此域模型映射到API的存储库或服务。

您的第一段内容正是正确的。这正是我需要的,也是我想要的代码示例。它可以非常简单,只是一个例子。你的链接是无用的,据我所知,它谈论并给出了对用户输入进行验证的示例。它使用了一种称为公共存储库的东西作为模型,但没有显示该位的代码。我将调用访问层中与底层模型交互的存储库部分。模型本身就是存储库操作的实体的集合。没关系,但我想我应该指出我们在术语上的差异。我想强调的是模式,而不是模式的实际用途。在存储库与API交互的模式中——调用API以检索数据并从结果中构造实体(模型类)。这很好,我正在尝试理解术语,从我在网上读到的例子和文档来看,这一点并不清楚。这似乎是唯一一个直接回答我问题的问题,有人能告诉我为什么没有得到更多的分数吗?(我似乎是唯一一个给出+1答案的人)因为你的问题(截至目前)只有80个观点,而且大多数人都不会把这个问题通读一遍,更不用说这个答案了;如果它回答了你的问题,这不是重点吗(原文如此)?