页面模型 Bool 总是 returns false
Page Model Bool always returns false
我正在处理一个 razor 页面项目,但在单击按钮时更改页面模型的值时遇到了问题。它应该在每次单击时切换 IsCreatingCompany 的值。这是我的代码:
<div class="col-6 text-end">
<form asp-page-handler="ToggleCreateCompany" method="post">
<button class="btn btn-primary" name="CreateCompanyResult" value=@Model.IsCreatingCompany>Add Company</button>
</form>
</div>
@if (Model.IsCreatingCompany)
{
<label>is true</label>
}
else
{
<label>is false</label>
}
public IActionResult OnPostToggleCreateCompany(bool CreateCompanyResult)
{
IsCreatingCompany = !CreateCompanyResult;
return Page();
}
我感觉我在某处犯了一个小错误,或者误解了什么。我尝试过的一些事情:
- 交换名称和值字段顺序(我在某处读到可能有用)。
- 将 OnPost 方法更改为 void return。
- 使输入参数的名称与 IsCreatingCompany 的字段名称匹配。
我验证过的东西是有效的:
- 点击按钮确实进入 OnPostToggleCreateCompany
方法。
- 首次加载页面并调用 OnGet 时,
值初始化为 false。另外,我没有在
构造函数。
- 第一次点击后,值更新为真,但是
我模型中的值仍然是错误的。
- 所有额外的点击在页面上留下“true”,在模型中留下“false”,而不是
切换值
如果我需要 post 任何额外的代码,请告诉我,感谢您的帮助!!!
尝试用@Model.IsCreatingCompany.ToString()
代替@Model.IsCreatingCompany
,这样传给handler的数据就会正确,这里有一个demo:
cshtml:
<div class="col-6 text-end">
<form asp-page-handler="ToggleCreateCompany" method="post">
<button class="btn btn-primary" name="CreateCompanyResult" value=@Model.IsCreatingCompany.ToString()>Add Company</button>
</form>
</div>
@if (Model.IsCreatingCompany)
{
<label>is true</label>
}
else
{
<label>is false</label>
}
我正在处理一个 razor 页面项目,但在单击按钮时更改页面模型的值时遇到了问题。它应该在每次单击时切换 IsCreatingCompany 的值。这是我的代码:
<div class="col-6 text-end">
<form asp-page-handler="ToggleCreateCompany" method="post">
<button class="btn btn-primary" name="CreateCompanyResult" value=@Model.IsCreatingCompany>Add Company</button>
</form>
</div>
@if (Model.IsCreatingCompany)
{
<label>is true</label>
}
else
{
<label>is false</label>
}
public IActionResult OnPostToggleCreateCompany(bool CreateCompanyResult)
{
IsCreatingCompany = !CreateCompanyResult;
return Page();
}
我感觉我在某处犯了一个小错误,或者误解了什么。我尝试过的一些事情:
- 交换名称和值字段顺序(我在某处读到可能有用)。
- 将 OnPost 方法更改为 void return。
- 使输入参数的名称与 IsCreatingCompany 的字段名称匹配。
我验证过的东西是有效的:
- 点击按钮确实进入 OnPostToggleCreateCompany 方法。
- 首次加载页面并调用 OnGet 时, 值初始化为 false。另外,我没有在 构造函数。
- 第一次点击后,值更新为真,但是 我模型中的值仍然是错误的。
- 所有额外的点击在页面上留下“true”,在模型中留下“false”,而不是 切换值
如果我需要 post 任何额外的代码,请告诉我,感谢您的帮助!!!
尝试用@Model.IsCreatingCompany.ToString()
代替@Model.IsCreatingCompany
,这样传给handler的数据就会正确,这里有一个demo:
cshtml:
<div class="col-6 text-end">
<form asp-page-handler="ToggleCreateCompany" method="post">
<button class="btn btn-primary" name="CreateCompanyResult" value=@Model.IsCreatingCompany.ToString()>Add Company</button>
</form>
</div>
@if (Model.IsCreatingCompany)
{
<label>is true</label>
}
else
{
<label>is false</label>
}