gpt4 book ai didi

c# - Razor View 中 int 的 mvc 下拉绑定(bind)

转载 作者:太空宇宙 更新时间:2023-11-04 14:32:51 24 4
gpt4 key购买 nike

我有一个带有整数的域/实体对象:

public Int32 HoursToWait {get;set;}

我在我的 View 模型中放了同样的东西:

public Int32 HoursToWait {get;set;}

<select id="HoursToWait" name="HoursToWait">
<option value="1">1</option>
<option value="6">6</option>
<option value="12" selected="selected">12</option>
<option value="12">24</option>
<option value="12">36</option>
<option value="12">48</option>
<option value="12">72</option>
</select>

问题的症结在于我的实体模型是一个整数。我想将其显示为下拉列表,只允许选择特定的时间。而且,一旦选择,我想在下次显示时默认它。

上面的代码“有效”,但它被硬编码为默认为 12,所以它很老套,如果用户更改 HoursToWait 值,则在重新加载时它会回到 12。

所以主要的问题是我应该使用哪种 View 模型属性和 Razor 元素来处理这个问题?

最佳答案

您的 View 模型将包含 HoursToWait 的属性和用于选择值的 SelectList。请注意,我假设您在 html 中有拼写错误并且选项值应该与文本匹配(目前您有 5 个选项 value="12")

public class MyViewModel
{

public int HoursToWait { get; set;}
public SelectList HoursToWaitList { get; set; }
}

在 Controller 的 GET 方法中

List<int> hours = new List<int>{ 1, 6, 12, 24, 36, 48, 72 };
MyViewModel model = new MyViewModel()
{
HoursToWait = 12, // set the default selection (based on the existing value in the db)
HoursToWaitList = new SelectList(hours);
}

在 View 中

@model MyViewModel
@using (Html.BeginForm())
{
@Html.DropDownListFor(m => m.HoursToWait, Model.HoursToWaitList, "-Please select-")
<input type="submit" ... />
}

关于c# - Razor View 中 int 的 mvc 下拉绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32404108/

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