Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 验证提交的外键的优雅方法_Asp.net Mvc_Model View Controller_Validation_Binding_Model - Fatal编程技术网

Asp.net mvc 验证提交的外键的优雅方法

Asp.net mvc 验证提交的外键的优雅方法,asp.net-mvc,model-view-controller,validation,binding,model,Asp.net Mvc,Model View Controller,Validation,Binding,Model,我最近读了几篇关于asp.net MVC中模型绑定和验证的文章和问题。到目前为止,我错过的是对给定外键id的验证(例如,相关项的下拉列表) 如果我们考虑以下情况: 存在一个以一组文件夹为特征的实体(即网站区域),用户可以将条目放入该文件夹中,但只能放入属于用户有权访问的网站区域的文件夹中 那么,有什么优雅的方法可以验证给定的外键值是否属于属于所讨论的网站区域的文件夹集呢 我认为通过使用自定义模型绑定器和/或可以访问数据存储库的自定义验证器来执行此检查是明智的做法?为什么不让数据库完成其工作并让它

我最近读了几篇关于asp.net MVC中模型绑定和验证的文章和问题。到目前为止,我错过的是对给定外键id的验证(例如,相关项的下拉列表)

如果我们考虑以下情况:

存在一个以一组文件夹为特征的实体(即网站区域),用户可以将条目放入该文件夹中,但只能放入属于用户有权访问的网站区域的文件夹中

那么,有什么优雅的方法可以验证给定的外键值是否属于属于所讨论的网站区域的文件夹集呢


我认为通过使用自定义模型绑定器和/或可以访问数据存储库的自定义验证器来执行此检查是明智的做法?

为什么不让数据库完成其工作并让它验证FK。在您的控制器中,您可以处理错误并显示回您认为合适的视图。

问题不是FK约束的纯粹性质(在这种情况下您是正确的),而是仅提供特定于特殊类型父实体的选项子集时的访问控制问题(即,仅针对该发票或任何特定的行位置)。但我认为我可以转移您的想法。考虑到直接操纵-在用户界面周围工作-不是预期的用例,因此模型/数据库层提出的异常将是合适的。