如何在 Razor 编辑视图中显示选中的单选按钮 Asp net core mvc

2024-05-16

尽管 Razor 视图中的 Asp 网络核心代码:

@model List<SelectListItem>
<form asp-controller="Manage" asp-action="Change" method="post">
    @foreach (SelectListItem item in Model) {
        <br />
        <input asp-for="@item.Value" type="radio" value="@item.Value" /> @(item.Value + " - " + item.Text)
   }
   <br />
   <input type="submit" value="OK" />
</form>

所有单选按钮均在浏览器 -> 查看源代码中选中

<input type="radio" value="1001" checked="checked" id="item_Value" name="item.Value" /> 1001 - Vilnius<br />
<input type="radio" value="1002" checked="checked" id="item_Value" name="item.Value" /> 1002 - Palanga<br />

如何检查所有单选按钮?

Added:

var lst = new List<SelectListItem>() {
           new SelectListItem {
                Value = "1001",
                Text = "Vilnius",
                Selected = true
            },
            new SelectListItem {
                Value = "1002",
                Text = "Trakai",
                Selected = false
            }
        };

据我所知,checked="checked"设置属性是因为这些单选按钮的当前值等于模型值(您在asp-for标签助手内的属性)。因此,您当前的设置asp-for="@item.Value"这里是错误的:

<input asp-for="@item.Value" type="radio" value="@item.Value" />

如果您想根据以下内容设置它们的值Selected里面的财产SelectListItem例如,您需要使用 viewmodel 类中的属性asp-for属性(属性必须定义为值类型或字符串)。

下面是一个正确的设置示例:

Model

// Viewmodel class
public class ViewModel
{
    // used to store selected value in select tag helper
    public string SelectedValue { get; set; }

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

控制器动作

// Populate select list
[HttpGet]
public IActionResult Change()
{
    var model = new ViewModel();
    model.OptionList = new List<SelectListItem>();

    // populate list values here
    model.OptionList.Add(new SelectListItem { Text = "1001", Value = "Vilnius", Selected = true });
    model.OptionList.Add(new SelectListItem { Text = "1002", Value = "Trakai", Selected = false });

    return View(model);
}

View

@* Set viewmodel property into tag helper *@
@model ViewModel

<form asp-controller="Manage" asp-action="Change" method="post">
    @foreach (var item in Model.OptionList) 
    {
        <br />
        <input asp-for="SelectedValue" type="radio" value="@item.Value" /> @(item.Value + " - " + item.Text)
    }
    <br />
    <input type="submit" value="OK" />
</form>

相关问题:

单选按钮标记帮助程序将每个单选按钮设置为选中 https://forums.asp.net/t/2120382.aspx?Radio%20Button%20Tag%20Helper%20sets%20every%20radio%20button%20to%20checked

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Razor 编辑视图中显示选中的单选按钮 Asp net core mvc 的相关文章

随机推荐