【问题标题】:input tag helper for ASP.NET Core doesn't change its text to the bound model fieldASP.NET Core 的输入标记助手不会将其文本更改为绑定模型字段
【发布时间】:2019-05-10 16:55:01
【问题描述】:

我正在为我的 Razor 视图使用 input 标签助手,如下所示:

<input type="text" asp-for="MsgFromFilter" id="txtMsgFromFilter" />

所以这应该绑定到我的模型的MsgFromFilter 字符串字段。虽然,当我提交表单时,我的模型中的这个字段绑定到文本框中的值,但反过来却不起作用:当我在控制器中设置这个字段的值时,视图没有设置作为文本输入元素的默认值;它只是维护input 字段中提交的最后一个值。如何让文本 input 在页面加载时将其值默认为模型中的值,而不是 input 中提交的最后一个值?

【问题讨论】:

  • 上下文不同,但我认为我的回答 here 会有所帮助。
  • 尝试在ModelState类调用Clear方法:ModelState.Clear();

标签: c# razor model-view-controller asp.net-core asp.net-core-mvc


【解决方案1】:

感谢@KirkLarkin,我发现要为 Razor 视图呈现的 input 字段设置默认值,我需要设置 ModelState。所以在我的控制器中我必须做两件事,设置ModelState 和模型本身:

if (btnReset) {
    ModelState.Remove(nameof(model.MsgFromFilter));
    model.MsgFromFilter = null;
}

这适用于将该模型字段的值以及 Razor 视图输入元素重置为空白。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    • 2017-02-13
    相关资源
    最近更新 更多