gpt4 book ai didi

asp.net-mvc-3 - MVC3 中的 DropDownListFor

转载 作者:行者123 更新时间:2023-12-02 20:45:27 24 4
gpt4 key购买 nike

好的,首先,我是 ASP.NET MVC 的新手。现在我尝试在 C# Razor View 中添加下拉列表。问题是,有没有办法直接将 List() 分配给 @Html.DropDownListFor...?MyClass 是这样的

public class MyClass
{
public int ID {get; set;}
public string Itemstring {get; set;}
}

ViewModel 是这样的

public class MyViewModel
{
public int ID { get; set; }
public List<MyClass> MyClassList {get; set; }
}

Controller 操作方法如下

public ActionResult Home()
{
MyViewModel mvm = new MyViewModel () {
new MyClass() { ID=1, Itemstring="My Item1" },
new MyClass() { ID=2, Itemstring="My Item2" },
new MyClass() { ID=3, Itemstring="My Item3" }
}
}

查看:这是我不知道如何使用的地方

@model xyzNameSpace.Models.MyViewModel
<div>
@Html.DropDownListFor(x => x.ID, Model.MyClassList);
<a href="@Url.Action("Selected")><img src="../../Content/images/selected.gif" alt="Proceed" /> </a>
</div>

-- 因此,当用户从下拉列表中选择一项并单击图像时,它应该调用(或调用不确定使用哪个词)控件中的“选定”操作,并且它应该将模型与选定的值绑定(bind),可以一些有人帮助我如何做到这一点...?

谢谢Siri。

最佳答案

Html.DropDownListFor 有 6 个重载,所有重载都采用 IEnumerable<SelectListItem>作为保存您的值的参数。您不能直接使用自己的类来实现此目的,这就是为什么当您尝试凯尔的解决方案时会出现该错误。

将其添加到您的模型中:

public List<SelectListItem> ListToUse { get; set; }

Controller :

MyViewModel model = new MyViewModel();
model.MyClassList = new List<MyClass>
{
new MyClass() { ID=1, Itemstring="My Item1" },
new MyClass() { ID=2, Itemstring="My Item2" },
new MyClass() { ID=3, Itemstring="My Item3" }
}
model.ListToUse = model.MyClassList
.Select(x => new SelectListItem{ Value = x.ID, Text = x.Itemstring })
.ToList();

在 View 中:

@Html.DropDownListFor(x => x.ID, Model.ListToUse);

我没有测试这段代码。

关于asp.net-mvc-3 - MVC3 中的 DropDownListFor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9999268/

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