gpt4 book ai didi

asp.net-mvc - 如何在MVC 5中搭建 View 模型

转载 作者:行者123 更新时间:2023-12-04 07:36:45 25 4
gpt4 key购买 nike

我正在尝试一个简单的应用程序。
我通过 Entity Framework 引入了三个SQL表,并自动创建了模型。
我希望能够在Visual Studio中自动创建“创建/详细信息/编辑等” View 。当我从单个模型(例如单独的名称)建立支架时,我可以自动执行此操作,但是在将 View 模型用作源时无法到达任何位置。

这是我的模特

名称

public partial class Name
{
public Name()
{
this.Addresses = new HashSet<Address>();
this.Emails = new HashSet<Email>();
}

public int ID { get; set; }
public string FIRST_NAME { get; set; }
public string LAST_NAME { get; set; }

public virtual ICollection<Address> Addresses { get; set; }
public virtual ICollection<Email> Emails { get; set; }
}

地址
public partial class Address
{
public int ADDRESS_ID { get; set; }
public int NameID { get; set; }
public string ADDRESS_1 { get; set; }
public string CITY { get; set; }
public string STATE { get; set; }
public string ZIP { get; set; }

public virtual Name Name { get; set; }
}

电子邮件
public partial class Email
{
public int EMAIL_ID { get; set; }
public int NameID { get; set; }
public string EMAIL { get; set; }

public virtual Name Name { get; set; }
}

和我创建的所有三个 View 模型
public class MainVM
{
public Name Name { get; set; }
public Address Address { get; set; }
public Email Email { get; set; }
}

我可以完成创建 Controller 的步骤-
使用 Entity Framework ,右键单击带有 View 的Controllers >> Add >> Controller >> MVC 5 Controller。

接下来,我进入此屏幕。

如果单击添加,将出现以下错误。

我读过其他答案,如果您使用的是View Model,则需要清除Data上下文类(从第一张图像中),但是如果这样做,则Add按钮将被停用。我不能比这更进一步。
这里有什么想法吗?

最佳答案

我敢打赌,原始海报此时可能仍未在寻找答案。但是它可以帮助像我这样的求职者。

发现本文有所帮助。 Link

似乎在沿着路线 Controller-> Add-> New Scaffolded Item-> MVC Controller with views时,使用 Entity Framework 不适用于 View 模型。

如果在选择 View 模型时未在上述脚手架过程中提供DataContext类,则MVC脚手架将不允许您继续进行。如您所指示,“添加”按钮被禁用。

解决方法是采用两步法。

首先使用支架创建 Controller Action ( Controllers-> Add-> New Scaffolded Item-> MVC Controller with读写 Action )

然后通过右键单击各个 Controller 的操作方法并利用脚手架来添加 View 。 ( Controller 的Action方法->右键单击->添加 View ->模板-> [选择空(没有模型,但不包含模型)]->模型类-> [在此处选择您的 View 模型]-> 将数据上下文类留空- >现在将启用添加按钮)。

链接的文章详细介绍了步骤,请看一看。

但是,您仍然需要自己添加代码,才能在 Controller 操作方法中使用 Entity Framework 使用数据库。 (或者您可以选择引入Busines图层,存储库等。 YMMV )但这有助于避免编写大量代码来创建 View 。

PS:我发现这种方法在使用ASP.Net core 1.1时对我来说很好

关于asp.net-mvc - 如何在MVC 5中搭建 View 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29828936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com