C# 如何在Blazor中绑定单选按钮?
blazor中没有单选按钮绑定。根据文档,建议使用InputRadio标记,但该标记在blazor中不起作用,并显示绑定问题。关于如何绑定单选按钮的任何建议当然是这样,下面将对其进行说明:C# 如何在Blazor中绑定单选按钮?,c#,binding,radio-button,blazor,C#,Binding,Radio Button,Blazor,blazor中没有单选按钮绑定。根据文档,建议使用InputRadio标记,但该标记在blazor中不起作用,并显示绑定问题。关于如何绑定单选按钮的任何建议当然是这样,下面将对其进行说明: @使用系统全球化 @类型参数TValue @继承InputBase @代码{ [参数] 公共TValue SelectedValue{get;set;} 私有void OnChange(ChangeEventArgs args) { CurrentValueAsString=args.Value.ToStri
@使用系统全球化
@类型参数TValue
@继承InputBase
@代码{
[参数]
公共TValue SelectedValue{get;set;}
私有void OnChange(ChangeEventArgs args)
{
CurrentValueAsString=args.Value.ToString();
}
受保护的重写bool TryParseValueFromString(字符串值,
输出值结果,输出字符串错误消息)
{
var success=bindconvertto.TryConvertTo(
值,CultureInfo.CurrentCulture,out var parsedValue);
如果(成功)
{
结果=解析值;
errorMessage=null;
返回true;
}
其他的
{
结果=默认值;
errorMessage=$“{FieldIdentifier.FieldName}字段无效。”;
返回false;
}
}
}
用法
@page”/RadioButton示例
@使用System.ComponentModel.DataAnnotations
单选按钮组测试
@对于(int i=1;i更新链接:
@using System.Globalization
@typeparam TValue
@inherits InputBase<TValue>
<input @attributes="AdditionalAttributes" type="radio" value="@SelectedValue"
checked="@(SelectedValue.Equals(Value))" @onchange="OnChange" />
@code {
[Parameter]
public TValue SelectedValue { get; set; }
private void OnChange(ChangeEventArgs args)
{
CurrentValueAsString = args.Value.ToString();
}
protected override bool TryParseValueFromString(string value,
out TValue result, out string errorMessage)
{
var success = BindConverter.TryConvertTo<TValue>(
value, CultureInfo.CurrentCulture, out var parsedValue);
if (success)
{
result = parsedValue;
errorMessage = null;
return true;
}
else
{
result = default;
errorMessage = $"{FieldIdentifier.FieldName} field isn't valid.";
return false;
}
}
}
@page "/RadioButtonExample"
@using System.ComponentModel.DataAnnotations
<h1>Radio Button Group Test</h1>
<EditForm Model="@model" OnValidSubmit="@HandleValidSubmit">
<DataAnnotationsValidator />
<ValidationSummary />
@for (int i = 1; i <= 5; i++)
{
<label>
<InputRadio name="rate" SelectedValue="i" @bind-Value="model.Rating" />
@i
</label>
}
<button type="submit">Submit</button>
</EditForm>
<p>You chose: @model.Rating</p>
@code {
private Model model = new Model();
private void HandleValidSubmit()
{
...
}
public class Model
{
[Range(1, 5)]
public int Rating { get; set; }
}
}