gpt4 book ai didi

c# - ASP.NET 模型的简单最佳实践

转载 作者:太空狗 更新时间:2023-10-29 20:17:02 24 4
gpt4 key购买 nike

我希望我的 View 如下所示:

@model MyProgram.Models.DocumentList

@{
ViewBag.Title = "View1";
}

@foreach (MyProgram.Models.Document doc in Model.GetDocs())
{
<p>doc.Content</p>
}

这让我相信我需要一个包含另一个模型列表的模型。所以在一个只包含这个的项目中我会:

/Model/DocumentList.cs
/Model/Document.cs

这是正确的还是有更好的方法?

最佳答案

使用View Models这样你就可以根据需要将尽可能多的模型传递给你的 View 。我还使用 View 模型来处理 POST 等的验证。因此,在您的情况下,您可以执行以下操作:

您的 View 模型

public class MyViewModel
{
public string PageTitle { get; set; }
public DocumentList DocList { get; set; }
// You could use your DocumentList object here, or if you
// don't want to, just pass a List<T> of Document
public List<Document> DocList { get; set; }
}

您的观点

@model MyViewModel

@{
ViewBag.Title = Model.PageTitle;
}

@foreach (var doc in Model.DocList)
{
<p>doc.Content</p>
}

不过 MVC 的功能远不止于此,例如 Display and Editor Templates所以我会在网上查看一些涵盖 MVC 基础知识的优秀教程。

编辑

公平地说,读完这篇文章你已经有点遵循了这个原则,只是 DocumentList 是你的 View 模型(你并不真的需要GetDocs 方法,只有一个集合属性,除非您在返回之前对集合执行逻辑)。

希望这个答案能帮助您澄清一些事情?

关于c# - ASP.NET 模型的简单最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22091472/

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