来自 html radiobutton 的模型变量 bool
Model variable bool from html radiobutton
我是 .NET Core 5 的新手,我有一个问题。
是否有可能以某种方式将 html 输入(例如来自无线电 bootstrap 输入)与 Razor 页面模型中的 bool 变量连接起来?而且,我怎样才能在网站上“打印”变量?因为这样#Model.Logical不行。
示例:
C# Class 型号
public class Logical
{
public string logicalAtrr { get; set; }
}
cshtml.cs:
public class logicalModel : PageModel
{
public Logical logical { get; set; }
public void OnGet()
{
}
cshtml
@page
@model ...
@{}
<div class="form-check">
<input class="form-check-input" type="radio" name="flexRadioDefault" id="flexRadioDefault1" asp-for="logical.logicalAtrr" value="true">
<label class="form-check-label" for="flexRadioDefault1">
True/False
</label>
<p>@Model.logical</p>
</div>
如果这个问题有误,我真的很抱歉,但我会尝试从头开始理解这个 Razor Pages 概念和 Web 开发
此外,当我尝试在逻辑 class 之上提供 [BindProperty] 时,我遇到了一个错误:
错误 CS0592 属性 'BindProperty' 在此声明类型上无效。它仅对 'property, indexer' 声明有效。
非常感谢您的帮助
我会为一个简单的 true/false 选项使用一个复选框。如果您使用收音机,您需要提供两个 - 每个州一个。您不能取消选择单个收音机。
复选框应绑定到布尔值 属性。模型绑定将负责确保在服务器上分配正确的值。
public class Logical
{
public bool LogicalAttr { get; set; }
}
无需在输入标签助手上设置 name
、id
或 value
属性。 Razor Pages 可以解决这个问题。只需将 属性 分配给 asp-for
属性:
<input asp-for="Logical.LogicalAttr" class="form-check-input" />
应将 BindProperty
属性分配给 public PageModel 属性 声明:
public class LogicalModel : PageModel
{
[BindProperty]
public Logical Logical { get; set; }
public void OnGet()
{
}
它不能应用于 class,所以这不会起作用,并且会引发您提到的编译器错误:
[BindProperty]
public class Logical
{
...
在这里阅读更多内容(我的网站,顺便说一句):
复选框:https://www.learnrazorpages.com/razor-pages/forms/checkboxes
收音机:https://www.learnrazorpages.com/razor-pages/forms/radios
模型绑定:https://www.learnrazorpages.com/razor-pages/model-binding
我是 .NET Core 5 的新手,我有一个问题。
是否有可能以某种方式将 html 输入(例如来自无线电 bootstrap 输入)与 Razor 页面模型中的 bool 变量连接起来?而且,我怎样才能在网站上“打印”变量?因为这样#Model.Logical不行。
示例: C# Class 型号
public class Logical
{
public string logicalAtrr { get; set; }
}
cshtml.cs:
public class logicalModel : PageModel
{
public Logical logical { get; set; }
public void OnGet()
{
}
cshtml
@page
@model ...
@{}
<div class="form-check">
<input class="form-check-input" type="radio" name="flexRadioDefault" id="flexRadioDefault1" asp-for="logical.logicalAtrr" value="true">
<label class="form-check-label" for="flexRadioDefault1">
True/False
</label>
<p>@Model.logical</p>
</div>
如果这个问题有误,我真的很抱歉,但我会尝试从头开始理解这个 Razor Pages 概念和 Web 开发
此外,当我尝试在逻辑 class 之上提供 [BindProperty] 时,我遇到了一个错误:
错误 CS0592 属性 'BindProperty' 在此声明类型上无效。它仅对 'property, indexer' 声明有效。
非常感谢您的帮助
我会为一个简单的 true/false 选项使用一个复选框。如果您使用收音机,您需要提供两个 - 每个州一个。您不能取消选择单个收音机。
复选框应绑定到布尔值 属性。模型绑定将负责确保在服务器上分配正确的值。
public class Logical
{
public bool LogicalAttr { get; set; }
}
无需在输入标签助手上设置 name
、id
或 value
属性。 Razor Pages 可以解决这个问题。只需将 属性 分配给 asp-for
属性:
<input asp-for="Logical.LogicalAttr" class="form-check-input" />
应将 BindProperty
属性分配给 public PageModel 属性 声明:
public class LogicalModel : PageModel
{
[BindProperty]
public Logical Logical { get; set; }
public void OnGet()
{
}
它不能应用于 class,所以这不会起作用,并且会引发您提到的编译器错误:
[BindProperty]
public class Logical
{
...
在这里阅读更多内容(我的网站,顺便说一句):
复选框:https://www.learnrazorpages.com/razor-pages/forms/checkboxes
收音机:https://www.learnrazorpages.com/razor-pages/forms/radios
模型绑定:https://www.learnrazorpages.com/razor-pages/model-binding