gpt4 book ai didi

asp.net-mvc - 如何在Razor语法中创建静态下拉列表?

转载 作者:行者123 更新时间:2023-12-02 23:00:47 26 4
gpt4 key购买 nike

经过数小时的Google和Stack Overflow考察,我找不到一个血腥的例子,说明如何构建一个完全死脑筋的简单下拉列表,该列表并非来自数据库。老实说,我很难理解MVC。有人可以告诉我如何创建它吗:

<select name="FooBarDropDown" id="FooBarDropDown">
<option value="Option1" selected>This is Option 1</option>
<option value="Option2">This is Option 2</option>
<option value="Option3">This is Option 3</option>
</select>


使用这个:

@Html.DropDownList....


我正在寻找一种一体化的解决方案...所有视图。我在语法上有段时间。

最佳答案

我认为这就是您想要的。最好将列表构造重构到视图模型或控制器中。

@Html.DropDownList("FooBarDropDown", new List<SelectListItem>
{
new SelectListItem{ Text="Option 1", Value = "1" },
new SelectListItem{ Text="Option 2", Value = "2" },
new SelectListItem{ Text="Option 3", Value = "3" },
})


将其放置在控制器中的一个示例可能如下所示:

public ActionResult ExampleView()
{
var list = new List<SelectListItem>
{
new SelectListItem{ Text="Option 1", Value = "1" },
new SelectListItem{ Text="Option 2", Value = "2" },
new SelectListItem{ Text="Option 3", Value = "3", Selected = true },
};

ViewData["foorBarList"] = list;
return View();
}


然后您认为:

@Html.DropDownList("fooBarDropDown", ViewData["list"] as List<SelectListItem>)


如果这确实是一个静态列表,您可能必须在其他视图/控制器中重用,那么我将考虑将此逻辑放入静态的静态类中。例:

public static class DropDownListUtility
{
public static IEnumerable<SelectListItem> GetFooBarDropDown(object selectedValue)
{
return new List<SelectListItem>
{
new SelectListItem{ Text="Option 1", Value = "1", Selected = "1" == selectedValue.ToString()},
new SelectListItem{ Text="Option 2", Value = "2", Selected = "2" == selectedValue.ToString()},
new SelectListItem{ Text="Option 3", Value = "3", Selected = "3" == selectedValue.ToString()},
};
}


然后,您将获得几种访问列表的不同方法。

控制器示例:

public ActionResult ExampleView()
{
var list = DropDownListUtility.GetFooBarDropDown("2"); //select second option by default;
ViewData["foorBarList"] = list;
return View();
}


查看示例:

@Html.DropDownList("fooBarDropDown", DropDownListUtility.GetFooBarDropDown("2"))

关于asp.net-mvc - 如何在Razor语法中创建静态下拉列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30606337/

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