我有一个表单,其中有“实际成本”字段,我想自定义其外观并应根据用户角色对其进行验证。
更清楚地说,客户希望在表单或详细信息页面中显示他的字段,并使其对角色“高级销售,经理”而不是其他角色的用户可编辑,所以任何人都可以指导我最好的方法吗?
我是否应该根据角色中的用户编写自定义所需的验证,如果可以,您能否提供正确的实现?
有些人可能会告诉我为此创建自定义模型,但我认为这会很麻烦,而且角色将是动态的,因此它不是预定义的角色集。
我希望我足够清楚
我有一个表单,其中有“实际成本”字段,我想自定义其外观并应根据用户角色对其进行验证。
更清楚地说,客户希望在表单或详细信息页面中显示他的字段,并使其对角色“高级销售,经理”而不是其他角色的用户可编辑,所以任何人都可以指导我最好的方法吗?
我是否应该根据角色中的用户编写自定义所需的验证,如果可以,您能否提供正确的实现?
有些人可能会告诉我为此创建自定义模型,但我认为这会很麻烦,而且角色将是动态的,因此它不是预定义的角色集。
我希望我足够清楚
安全性绝对应该发生在模型或控制器中,但永远不会发生在视图中——这远远超出了视图的关注范围。即显示控制器提供的数据。
要扩展@Wyatt,您需要在模型级别做出所有这些决定,然后用所有答案填充“视图模型”,然后可以在视图中使用这些答案来改善用户体验。
在此表单的 ViewModel 中,有一个属性 IsRealCostEditable,它将由您的服务/模型层通过检查用户的角色来设置。现在您可以轻松调整该字段的 UI。
您可以创建重复页面,并且一个页面可以包含不会更改页面中任何内容的视图模型......并且您可以拥有一个重定向到可编辑页面的 EDIT 按钮。使该页面受到身份验证的保护。所以你会被要求在编辑之前验证你的角色
否则..您的 ViewModel 无法做出决定,它在服务层上。