如何防止 Model 中的旧数据自动传入输入字段?

Posted

技术标签:

【中文标题】如何防止 Model 中的旧数据自动传入输入字段?【英文标题】:How to prevent old data in Model from being passed into the input fields automatically? 【发布时间】:2022-01-05 17:47:31 【问题描述】:

是否可以防止数据自动传递到输入字段。例如 - 如果我有一个编辑页面,我想在其中更改数据,并且我希望用户再次键入数据而不给他预先填写的旧数据。我正在查看一些关于 ModelState 和 asp-for 标签的文档,但我找不到答案。

我正在寻求帮助,我在这里找到了这篇文章。好吧,我想做完全相反的事情。

asp-for tag helper functionality_

编辑: 我尝试将输入字段的 value 属性更改为空字符串并且它有效,但是我仍然想知道是否有 asp.net 方法。

【问题讨论】:

您必须发布您的模型、视图和操作 由于某种原因完全不可能这样做。我正在尝试编辑帖子并插入代码,但它会抛出一个错误,说我没有正确插入代码,我是的,我阅读了它是如何完成的,但它仍然不起作用。 【参考方案1】:

如果您不想将数据从操作传递到编辑视图,您可以返回一个带有空模型的视图,如下所示:

public IActionResult Edit()
        
            return View(new YourModel());
        

或者你可以尝试用idname属性替换asp-for,这样数据就不会绑定到输入了。这里有一个demo。

改变

<input asp-for="TestProperty" />

<input id="TestProperty" name="TestProperty" />

【讨论】:

非常感谢!由于我是 .NET Core 的新手,我想在我这样做之后,我可以创建一个继承原始对象 id 的新对象,然后在数据库中更新它。 (Id 是我的主键,所以我想它应该可以工作,不是吗?) 是的,你可以更新它。

以上是关于如何防止 Model 中的旧数据自动传入输入字段?的主要内容,如果未能解决你的问题,请参考以下文章

更新 CRM 中的旧数据

如何防止 chrome 自动填充表单中的每个字段?

ThinkPHP如何防止SQL注入?

ASP.NET / 模型 - 防止模型预填充表单输入字段

当架构中不存在字段时,如何防止 django 出错?

如何防止访问 Amplify graphql 公共 API 中的某些字段