在我的模型中我有IEnumerable,并且由于这个原因,我无法在视图中使用for循环。如果我使用foreach,生成的Html没有索引,这就是我需要的。我如何解决这个问题。 我试图使用相同的视图模型来创建和编辑,我在编辑部分有问题。由于模型中的IEnumerable,无法使用索引视图?
public class CreateModule
{
//Empty form to handle form serialization
public CreateModule()
{
}
public long Id { get; set; }
[Required]
public string ModuleId { get; set; }
[DataType(DataType.DateTime)]
public DateTime DateEntered { get; set; }
public string KindName { get; set; }
public string TypeName { get; set; }
public string SelectedModuleTypeName { get; set; }
public IEnumerable<SelectListItem> TypeNames { get; set; }
public IEnumerable<Property> Properties { get; set; }
}
public class Property
{
public string Name { get; set; }
public string Value { get; set; }
}
这是我的看法,我也同时用于和foreach,但我已经为评论,因为我不能产生以下两个名字在它目前
@*
@for (int i = 0; i < Model.Properties.Count(); i++)
{
<label class="label">@Model.Properties[i].Value</label>
<div class="input-block-level">@Html.TextBoxFor(model => Model.Properties[i].Value, new { @value = Model.Properties[i].Value })</div>
}
*@
@foreach (var properties in Model.Properties)
{
<div class="label">@properties.Name</div>
<div class="input-block-level">@Html.TextBoxFor(model => properties.Value, new { @value = properties.Value })</div>
<br/>
}
目前Html.Textbox使用该索引没有索引 properties.value 因为这个在post中提交的值是Null。如果我使用for循环,那么我认为我的properties.value将更改为属性[0] .value和属性[1] .value ???我不确定,但那是我想要实现的。
如果我改变从
public IEnumerable<Property> Properties { get; set; }
我的模型
public List<Property> Properties { get; set; }
那么它reutrns的IQueryable为值的属性在仓库我下面的方法是行不通的,而从IQueryable的铸造到列表将不可能。
public CreateModule GetModuleDetails(long id)
{
var module = (_dbSis.Modules.Where(t => t.Id == id).Select(m => new CreateModule
{
Id = id,
ModuleId = m.ModuleId,
TypeName = m.ModuleType.TypeName,
KindName = m.ModuleType.ModuleKind.KindName,
Properties = m.PropertyConfiguration.PropertyInstances.Select(
x => new Property { Name = x.Property.Name, Value = x.Value })
}));
return (module.FirstOrDefault());
}
你在哪里甚至需要索引?目前,循环的差异是无关紧要的。 –
当前如果我有两个属性名称和两个属性值,我的foreach循环为显示属性值的文本框生成名称'properties.value'。我希望它不被显示为'properties.value',而是'properties [0] .value'和'properties [1] .value',这不会通过使用for循环来实现吗? – Cybercop
如果我正确地解释你,不,一点也不。 –