根据用户凭据,我将允许用户在 Razor 视图上编辑或不编辑字段。
所以我目前有一个模型,我可以为我禁止的属性执行此操作:
[Editable(allowEdit=false)]
public string FirstName {get;set;}
但是当我添加属性时,无论用户是否有权编辑它,他们都无法这样做。我也无法更改 Razor View 中的字段,因为我们使用了一种非常不同的渲染模型属性的方式。
知道如何克服这个问题吗?
根据用户凭据,我将允许用户在 Razor 视图上编辑或不编辑字段。
所以我目前有一个模型,我可以为我禁止的属性执行此操作:
[Editable(allowEdit=false)]
public string FirstName {get;set;}
但是当我添加属性时,无论用户是否有权编辑它,他们都无法这样做。我也无法更改 Razor View 中的字段,因为我们使用了一种非常不同的渲染模型属性的方式。
知道如何克服这个问题吗?
您可能想要创建自定义验证属性并使用它,您可以在其中注入您的布尔值并检查并使其成为有条件的(在 C# 中)。
更好的选择是使用 Fluent Validation - 在这些情况下,当您需要条件验证时,它更容易使用。它还可以使您的模型保持清洁。
因此,如果您可以使用Fluent 验证,则只需定义您自己的属性并在您的代码中控制它,包括所有条件。示例和库链接在这里
这是您的另一个选择 - 旨在简化您尝试实现的工作的完整库:http: //foolproof.codeplex.com/
希望这可以帮助