gpt4 book ai didi

c# - 覆盖 View 模型中的必需属性

转载 作者:太空宇宙 更新时间:2023-11-03 23:01:10 25 4
gpt4 key购买 nike

我有一个 View 模型,用于我的网站所代表的对象。我们称它为 Student

我很高兴通过为我的添加、详细信息和编辑 View 使用相同的 View 模型来最大程度地减少应用程序的困惑。

但是,某些元素在编辑 View 中不应是可编辑的,例如密码。所以我从 View 中删除了它们。

但是,现在 ModelState.IsValid 在回传中报告错误。

是否有一种直接的方法可以对所有这些 View 使用相同的 View ,但以某种方式覆盖我的编辑 View 所需的状态?

注意:我知道我可以使用隐藏字段。但我不喜欢向客户端发送密码等数据并返回。我只是不想在这里公开它。

最佳答案

因此,正如其他人所指出的,这种情况通常需要不同的 View 模型类。并且这可以使用继承更简洁地完成。

但还有另一种选择。有些东西虽然不完美,但更接近我要找的东西。

当您的表单回发时,所有错误都存储在 ModelState 中。如果您知道有一些无关紧要的错误,您可以清除这些错误。请注意,清除所有错误将导致 ModelState.IsValidfalse 更改为 true

public ActionResult Edit(TrainerModel model)
{
ModelState[nameof(model.Email)]?.Errors?.Clear();
ModelState[nameof(model.Password)]?.Errors?.Clear();

if (ModelState.IsValid)
{
//
}
return View(model);
}

关于c# - 覆盖 View 模型中的必需属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43032642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com