gpt4 book ai didi

c# - 使用动态 MVC 控件

转载 作者:太空宇宙 更新时间:2023-11-03 15:40:59 25 4
gpt4 key购买 nike

我正在尝试使用 Razor 开发 View 。在这个 View 中,我需要添加下拉列表。但挑战在于我的 View 模型中没有此下拉列表的特定属性。基于 View 模型中数据库的值(例如:fieldType),我决定控件的类型。下面是我为此使用的代码块。

@if (Model.fieldValues[i].FieldType.Equals("TEXT"))
{
@Html.TextBoxFor(m => m.fieldValues[i].FieldValue);
}
else if (Model.fieldValues[i].FieldType.Equals("MULTIVALUED"))
{
@Html.DropDownList(Model.fieldValues[i].OptionFieldValueId.ToString(), Model.fieldValues[i].MultiValueItems)
}

我可以设法获取填充的值。但是,我无法获取用于下拉列表的“选定值”。另外,我如何在 Controller 操作中访问这个下拉列表选择的值?

这是我的主要 View 模型和子模型。

public class ValuesGridViewModel
{
public List<CompanyFieldValueViewModel> fieldValues { get; set; }

public List<int> UniqueBatchIds
{
get
{
return HelperMethods.GetUniqueValues<int>(fieldValues.Select(x => x.BatchId).ToList());
}
}

public List<string> HeaderList
{

get
{
return HelperMethods.GetUniqueValues<string>(fieldValues.Select(x => x.Heading).ToList());
}
}
}



public class CompanyFieldValueViewModel
{
public List<MultiValues> MultiValueData { get; set; }
public int OptionFieldValueId { get; set; }
public string Heading { get; set; }
public string FieldValue { get; set; }
public string FieldType { get; set; }
public int? MultiValueId { get; set; }
public int BatchId { get; set; }

public int DisplayOrder { get; set; }
public List<SelectListItem> MultiValueItems
{
get
{
var list = MultiValueData.Where(x=>x.MultiValueId == this.MultiValueId).Select(x => new SelectListItem()
{
Text = x.ValueName,
Value = x.ValueId.ToString()
});
return list.ToList();
}

}

}

这个网站的新手。因此,对于任何格式问题,我们深表歉意。提前致谢!

最佳答案

您想将所选值存储在哪个属性中?将其用作 Html.DropDownListFor 的第一个参数。

请注意,Model.fieldValues[i].OptionFieldValueId.ToString() 不返回“OptionFieldValueId”;它返回该属性的值,这可能不是您想要的。

尝试这样的事情:

@Html.DropDownListFor(m => m.fieldValues[i].OptionFieldValueId,
Model.fieldValues[i].MultiValueItems);

关于c# - 使用动态 MVC 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30276366/

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