gpt4 book ai didi

c# - 在 MVC3 中创建一个简单的下拉列表

转载 作者:太空宇宙 更新时间:2023-11-03 19:22:17 24 4
gpt4 key购买 nike

我有一个文本框,用于输入工作角色的值。但是,这仅限于数据库方面的一定数量的角色。因此,使用仅包含有效角色的下拉列表对我来说更有意义。我正在尝试进行设置,但遇到了困难。

我在我的 View 中放置了以下代码:

<p>
@Html.LabelFor(m => m.Role)
@Html.DropDownListFor(m=>m.Roles)
@Html.ValidationMessageFor(m => m.Role)
</p>

在我的模型中:

public List<string> Roles
{
get
{
return new {"Author","Underwriter" };
}
}

虽然这不会编译。知道我做错了什么吗?

最佳答案

您的 View 模型需要 2 个属性才能创建下拉列表:一个标量属性将保存所选值,一个集合属性包含您要显示的可用项目列表。

因此,一如既往地从编写 View 模型开始:

public class MyViewModel
{
[Required]
[DisplayName("Role")]
public string SelectedRole { get; set; }

public IEnumerable<SelectListItem> Roles
{
get
{
return new[]
{
new SelectListItem { Value = "Author", Text = "Author" },
new SelectListItem { Value = "Underwriter", Text = "Underwriter" }
};
}
}
}

然后是将此模型传递给 View 的 Controller 操作:

public class HomeController: Controller
{
public ActionResult Index()
{
var model = new MyViewModel();
return View(model);
}

[HttpPost]
public ActionResult Index(MyViewModel model)
{
if (!ModelState.IsValid)
{
return View(model);
}
return Content("Thanks for selecting role: " + model.SelectedRole);
}
}

最后是相应的强类型 View :

@model MyViewModel
@using (Html.BeginForm())
{
@Html.LabelFor(m => m.SelectedRole)
@Html.DropDownListFor( m => m.SelectedRole, Model.Roles, "-- Role --")
@Html.ValidationMessageFor(m => m.SelectedRole)

<button type="submit">OK</button>
}

关于c# - 在 MVC3 中创建一个简单的下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11361369/

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