BeginCollectionItem 不能绑定部分值
本文关键字:绑定部 不能 BeginCollectionItem | 更新日期: 2023-09-27 18:37:05
我正在编辑可变长度列表,ASP.NET MVC 2 样式教程,但我无法将视图模型的值绑定到我的创建视图
型:
public class WebPages
{
[Key]
public int WebPagesId { get; set; }
public String DomainName { get; set; }
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
public DateTime DomainStart { get; set; }
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
public DateTime DomainExp { get; set; }
public String DomainEmails { get; set; }
public String DomainUsers { get; set; }
public String DomainPasswords { get; set; }
}
}
视图模型:
public class WebPagesViewModel
{
[Key]
public int Id { get; set; }
public String DomainName { get; set; }
public class Domain
{
public String DomainEmails { get; set; }
public String DomainUsers { get; set; }
public String DomainPasswords { get; set; }
}
public List<Domain> Domains { get; set; }
}
}
创建获取控制器
public ActionResult Create(WebPages model)
{
var ejemdata = new List<WebPagesViewModel.Domain>
{
new WebPagesViewModel.Domain
{
DomainEmails = "email@gmail.com",
DomainUsers = "Testuser",
DomainPasswords = "testpassword"
}
};
var vm = new WebPagesViewModel
{
Clients = new SelectList(db.ClientsList, "ClientsId", "ClientsName"),
Domains = ejemdata
};
return View(vm);
}
创建视图:
@foreach (var item in Model.Domains)
{
{ Html.RenderPartial("_WebPagesPartial", item);}
}
部分:
@using xxx.Models.ViewModels
@model WebPagesViewModel.Domain
@using HtmlHelpers.BeginCollectionItem
<h2>Partial View</h2>
<div>
@using (Html.BeginCollectionItem("Domains"))
{
Html.EditorFor(x => x.DomainPasswords);
Html.EditorFor(x => x.DomainUsers);
Html.EditorFor(x => x.DomainEmails);
}
我使用断点调试,控制器从我的ejemdata
获取值,并将其传递到我的创建视图以foreach
在查看照片中接收数据
因此,当页面加载时,它仅从部分加载标签,但不显示 BeginCollectionItem 方法中的任何内容,我在 HTML 上得到这个
.HTML:
<input type="hidden" name="Domains.index" autocomplete="off" value="28f4e8e7-cde3-44fe-a739-b4c8acb15ec2">
您使用
Html.EditorFor(x => x.DomainPasswords);
只是调用该方法,但不输出其结果。您需要将其更改为
@Html.EditorFor(x => x.DomainPasswords)
(其他 2 个 HtmlHelper 也是如此)