据我所知,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