gpt4 book ai didi

asp.net - Html.DropDownListFor 设置选中值

转载 作者:行者123 更新时间:2023-12-02 00:39:25 24 4
gpt4 key购买 nike

我创建了一个@Html.DropDownListFor 并从数据库中填充它。如何将选定值设置为下拉列表?

我的看法:

@Html.DropDownListFor(m => m.Forms, new SelectList(Model.Forms, "FormsCreatorID", "FormName"),
"Select a Form", new { @class = "form-control" })

我的 Controller :

var forms = db.formscreators.Where(fp => fp.PropertyID == id || fp.PropertyID == 0)
.OrderByDescending(x => x.PropertyID).GroupBy(x => x.FormName).Select(x => x.FirstOrDefault()).ToList();
var viewModel = new ListFormsCreator { Forms = forms };

我的 View 模型:

public class ListFormsCreator
{
public List<formscreator> Forms { get; set; }
}

我的数据库模型:

public partial class formscreator
{
public int FormsCreatorID { get; set; }
public string FormName { get; set; }
public int PropertyID { get; set; }
}

谢谢

最佳答案

您应该向您的 View 模型添加另一个属性以存储/传递所选选项。

public class ListFormsCreator
{
public int SelectedFormId { set;get;}
public List<formscreator> Forms { get; set; }
}

现在在您的 GET 操作中,您可以设置该值

var viewModel = new ListFormsCreator() { Forms = forms };
viewModel.SelectedFormId = 2 ; // This will select the option with 2 as FormsCreatorID
return View(viewModel);

并在 View 中使用具有该属性的 lambda 表达式作为 DropDownListFor 辅助方法的第一个参数。

@model ListFormsCreator

@Html.DropDownListFor(m => m.SelectedFormId ,
new SelectList(Model.Forms, "FormsCreatorID", "FormName"),
"Select a Form", new { @class = "form-control" })

DropDownListFor 辅助方法将使用 SelectedFormId 属性的值,并从列表中选择具有相同 value 属性值的选项该 SELECT 元素的选项。

您还可以从 View 模型中删除对 formscreator 类的依赖,方法是将其替换为 SelectListItem

的列表
public class ListFormsCreator
{
public int SelectedFormId { set;get;}
public List<SelectListItem> Forms { get; set; }
}

现在在您的 GET 操作中,您可以使用 Select 方法从您的其他集合中生成 SelectListItem 的 lsit。

var viewModel = new ListFormsCreator();
viewModel.Forms = someCollection.Select(a=>new SelectListItem {
Value=a.FormsCreatorId.ToString(),
Text=a.FormName})
.ToList();
viewModel.SelectedFormId = 2 ; // This will select the option with 2 as FormsCreatorID
return View(viewModel);

假设 someCollectionformscreator 对象的集合现在在 View 中代码简单多了

@Html.DropDownListFor(m => m.SelectedFormId, Model.Forms ,"Select a Form")

关于asp.net - Html.DropDownListFor 设置选中值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47702462/

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