如何根据条件更改模型的可编辑属性

本文关键字:编辑 属性 模型 何根 条件 | 更新日期: 2023-09-27 18:03:13

基于用户凭证,我将允许用户在Razor视图上编辑或不编辑字段。

所以我现在有一个模型我可以为我禁止的属性做这个:

[Editable(allowEdit=false)]
public string FirstName {get;set;}

,但是当我添加属性,无论用户是否有权限编辑它,他们将无法。我也不能改变Razor View中的字段,因为我们使用了一种非常不同的渲染模型属性的方式。

你知道我怎样才能克服这个问题吗?

如何根据条件更改模型的可编辑属性

您可能想要创建自定义验证属性并使用它,在其中您可以注入布尔值和检查并使其成为条件(在c#中)。

更好的选择是使用Fluent Validation——在这些情况下,当你需要条件验证时,它更容易使用。它也会使你的模型更干净。

所以如果你可以使用Fluent验证,如果不能,就定义你自己的属性,并在你的代码中控制它,包括所有条件。示例和库链接在这里

这里是你的另一个选择-完整的库构建的目的是简化你试图实现的工作:http://foolproof.codeplex.com/

希望能有所帮助