c# - RazorPages (Core3.1) 如何使用带有 HTML 输入的 asp-for?
问题描述
为什么在回发期间使用 asp-for 时,asp-for 不使用服务器端更改填充输入值?
如果我在没有明确设置 input[value] 属性的情况下使用 asp-for,我的用户输入数据将被保留,但我的服务器端更改将被忽略。相反,如果我明确设置 input[value] 属性,我的用户输入数据将被保留,并且在往返过程中任何服务器端更改都会得到尊重。
重现步骤
初始页面加载
用户输入然后单击“什么?”
PostBack 的输出
示例代码
@page
@model IndexModel
@{
ViewData["Title"] = "Home page";
}
<div class="text-center">
<h1 class="display-4">Welcome</h1>
<p>
Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.
</p>
<div class="row">
<div class="col-6 mx-auto">
<form method="post">
<div asp-validation-summary="All"></div>
<div class="form-group">
<input class="form-control" asp-for="NameWithoutValue" />
</div>
<div class="form-group">
<input class="form-control" asp-for="NameWithValue" value="@Model.NameWithValue" />
</div>
<button class="btn btn-primary" asp-page-handler="WhatThe">What the?</button>
</form>
</div>
</div>
</div>
public class IndexModel : PageModel
{
public void OnGet()
{
}
public void OnPostWhatThe()
{
NameWithoutValue = DateTime.Now.ToString("HH:mm:ss");
NameWithValue = DateTime.Now.ToString("HH:mm:ss");
}
[BindProperty]
public string NameWithoutValue { get; set; } = "without-value-attribute";
[BindProperty]
public string NameWithValue { get; set; } = "with-value-attribute";
}
解决方案
推荐阅读
- c - 使用结构和内存分配查找文本中单词的频率
- python - 使用 .find() 函数,输出显示“参数应该是整数或类似字节的对象,而不是 'str'”
- r - 错误:Statbin 需要一个连续的 x 变量:x 变量是离散的。也许你想要 stat= “count”?
- ios - 为 iOS 模拟器构建,但在为 iOS 构建的目标文件中链接
- asp.net-identity - 当我们使用 ASP.NET Core 身份时,电话号码令牌的生命周期是多久?
- javascript - 编译旧项目时出现大量“未定义”ESLint 错误
- mysql - 在 Thymeleaf + Spring Boot 中检索错误时间
- typescript - 在打字稿中定义一个更具体类型的接口?
- java - Hibernate 不在数据库中创建表
- postgresql - Postgresql 函数返回 setof 为空