gpt4 book ai didi

c# - 可选属性中的 MVC 必需属性

转载 作者:太空狗 更新时间:2023-10-29 22:01:03 25 4
gpt4 key购买 nike

我有两个实体:

public class ParentThing
{
[Key]
public int Id { get; set; }

[Required]
public ChildThing TheFirstThing { get; set; }

public ChildThing TheSecondThing { get; set; }
}

public class ChildThing
{
[Key]
public int Id { get; set; }

[Required]
public string Code { get; set; }

public string Name { get; set; }
}

和一个 View 模型:

public class ParentViewModel
{
public string Message { get; set; }

public ParentThing ParentThing { get; set; }
}

和一个 View :

@using (@Html.BeginForm())
{
<label>Code 1</label>
@Html.EditorFor(model => model.ParentThing.TheFirstThing.Code)

<label>Name 1</label>
@Html.EditorFor(model => model.ParentThing.TheFirstThing.Name)

<label>Code 2</label>
@Html.EditorFor(model => model.ParentThing.TheSecondThing.Code)

<label>Name 2</label>
@Html.EditorFor(model => model.ParentThing.TheSecondThing.Name)

<input type="submit" value="Save" />
}

在我的回复中,我将 ParentThing 添加到上下文中并尝试保存更改。我收到有关 ParentThing 的 TheSecondThing 属性的代码属性的验证错误,因为它是必需的。

保存包含必需属性的可选属性有哪些替代方法?

最佳答案

正如杰米所建议的那样,移除实体和模型之间的任何依赖关系……它们是两个独立的事物不要在你的实体上使用数据注释,在你的模型上使用数据注释。删除模型的 ParentThing 属性并根据需要在模型中添加原始属性(即 Message、ParentThingId、TheFirstThingId、TheFirstThingCode、TheFirstThingName 等)并将所有数据注释属性添加到模型中。如果您需要验证您的实体(您可能会),请根据您的业务逻辑执行此操作。

我希望这是有道理的

狮子座。

关于c# - 可选属性中的 MVC 必需属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20482671/

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