将单选按钮绑定到模型
Binding a radiobutton to model
我在 razorpage 上有一个单选按钮,就像这样
<input asp-for="Order.CostCenter" type="radio" id="proj" name="CostCenter" value="proj">
<label>Project</label>
<input asp-for="Order.CostCenter" type="radio" id="dep" name="CostCenter" value="dep">
<label>Department</label>
表单的模型如下所示
[BindProperty] public OrdPurchase Order { get; set; }
SQL 的模型看起来像这样
public string CostCenter { get; set; }
并且 SQL 中 CostCenter 的数据类型是 varchar(80)
当我保存表格时,CostCenter 未绑定到 SQL 中的任何值,它保持为 NULL,但其余表格值正确保存
这可能是什么原因?
如果选择“proj”,我想保存值“proj”,如果选择“dep”,我想保存值“dep”
谢谢
托马斯
手动分配输入控件id
和name
时不要使用asp-for
。
<input type="radio" id="proj" name="CostCenter" value="proj">
<label>Project</label>
<input type="radio" id="dep" name="CostCenter" value="dep">
<label>Department</label>
并使用 BindProperty
对象 属性 和单选按钮名称:
[BindProperty]
public string CostCenter { get; set; }
Asp.net core bind model data with name attribute.You 只需要删除 name="CostCenter"
,这里是一个演示:
.cshtml:
<form method="post">
<input asp-for="Order.CostCenter" type="radio" id="proj" value="proj">
<label>Project</label>
<input asp-for="Order.CostCenter" type="radio" id="dep" value="dep">
<label>Department</label>
<input type="submit" value="submit" />
</form>
.cshtml.cs:
[BindProperty]
public OrdPurchase Order { get; set; }
public IActionResult OnPost()
{
return Page();
}
结果:
我在 razorpage 上有一个单选按钮,就像这样
<input asp-for="Order.CostCenter" type="radio" id="proj" name="CostCenter" value="proj">
<label>Project</label>
<input asp-for="Order.CostCenter" type="radio" id="dep" name="CostCenter" value="dep">
<label>Department</label>
表单的模型如下所示
[BindProperty] public OrdPurchase Order { get; set; }
SQL 的模型看起来像这样
public string CostCenter { get; set; }
并且 SQL 中 CostCenter 的数据类型是 varchar(80)
当我保存表格时,CostCenter 未绑定到 SQL 中的任何值,它保持为 NULL,但其余表格值正确保存
这可能是什么原因?
如果选择“proj”,我想保存值“proj”,如果选择“dep”,我想保存值“dep”
谢谢
托马斯
手动分配输入控件id
和name
时不要使用asp-for
。
<input type="radio" id="proj" name="CostCenter" value="proj">
<label>Project</label>
<input type="radio" id="dep" name="CostCenter" value="dep">
<label>Department</label>
并使用 BindProperty
对象 属性 和单选按钮名称:
[BindProperty]
public string CostCenter { get; set; }
Asp.net core bind model data with name attribute.You 只需要删除 name="CostCenter"
,这里是一个演示:
.cshtml:
<form method="post">
<input asp-for="Order.CostCenter" type="radio" id="proj" value="proj">
<label>Project</label>
<input asp-for="Order.CostCenter" type="radio" id="dep" value="dep">
<label>Department</label>
<input type="submit" value="submit" />
</form>
.cshtml.cs:
[BindProperty]
public OrdPurchase Order { get; set; }
public IActionResult OnPost()
{
return Page();
}
结果: