gpt4 book ai didi

asp.net - 在 MVC 详细 View 中显示值列表

转载 作者:行者123 更新时间:2023-12-02 21:17:42 25 4
gpt4 key购买 nike

我是 Web 应用程序、MVC 和 LinqToSql 的新手。我使用 NerdDinner 教程作为指南创建了一个 MVC Web 应用程序。我现在正在向其添加多对多关系。我每一步都会碰壁。我在编辑和创建 View 中有一个多选列表。对于详细信息和 ListView ,我想列出选定的值。

我有 3 个表:Company、Subcontract 和一个链接表 CompanyToSubcontract。我有代码从 CompanyToSubcontract 表中获取我选择的公司的 guid,该表在我的代码中的其他地方使用。我不知道如何显示它。

我应该编写另一个函数来从公司表中获取公司名称吗?我是否将名称列表传递到 SubcontractDetail View ,然后以某种方式循环访问它?

与 SubcontractIndex View 相同的问题。索引 View 采用表格格式,我想要一个“公司”列,其中每个分包契约(Contract)行都有一个以逗号分隔的公司列表。

[Authorize]
public ActionResult Details(string id)
{
subcontract subcontract = subcontractRepository.GetSubcontract(id);

IEnumerable<Guid> cmpny = subcontractRepository.GetSubcontractCompanies(subcontract.subcontract_id);

if (subcontract == null)
return View("NotFound");
else
{
return View("Details", subcontract);
}
}

[Authorize]
public ActionResult Index()
{
var subcontracts = subcontractRepository.FindAllSubcontracts().ToList();
return View("Index", subcontracts);
}

最佳答案

您有多种选择:
1)您可以创建包含 subcontract 和 IEnumerable 的新类,并将新类的对象传递给 View 。这是 ASP.NET MVC 中的常见做法。

public class MyCustomModelView
{
public IEnumerable<Guid> Company{ get; set; }
public subcontract Subcontract { get; set; }
}

在 Controller 中:

return View("Details", new MyCustomModelView(){
Company = cmpny,
Subcontract = subcontract });

并添加这个新类型应该是您的 View 类型。

enter code here

2)您还可以将 IEnumerable 添加到 ViewData 集合中,如下所示:

ViewData["Company"] = cmpny;

然后使用 View 中的索引器访问它

<% foreach(Guid id in (ViewData["Company"] as IEnumerable<Guid>)) {  %>
...Display names...
<% } %>

我个人会首先推荐你,因为你不需要 Actor 而且更干净

关于asp.net - 在 MVC 详细 View 中显示值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2182288/

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