Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.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
C# MVC 3、EF4自定义远程验证和单独的模型装配项目_C#_Asp.net Mvc 3_Validation - Fatal编程技术网

C# MVC 3、EF4自定义远程验证和单独的模型装配项目

C# MVC 3、EF4自定义远程验证和单独的模型装配项目,c#,asp.net-mvc-3,validation,C#,Asp.net Mvc 3,Validation,我已经设置了一个MVC3 EF4项目,其中模型和存储库被分解成单独的组装项目。对所需属性等的基本验证工作正常,但如果我需要执行任何远程验证,比如检查用户是否已在组中等。远程验证无法识别模型项目中的控制器 [Remote("IsUID_Available", "Validation")] 当我尝试在模型项目中添加对主项目的引用时,它说这会导致循环依赖,并且不允许添加 我是否需要将我的模型移出单独的程序集并移入主项目中,或者是否有其他方法对单独程序集中的模型进行远程验证 这里的最佳实践是什么。我读

我已经设置了一个MVC3 EF4项目,其中模型和存储库被分解成单独的组装项目。对所需属性等的基本验证工作正常,但如果我需要执行任何远程验证,比如检查用户是否已在组中等。远程验证无法识别模型项目中的控制器

[Remote("IsUID_Available", "Validation")]
当我尝试在模型项目中添加对主项目的引用时,它说这会导致循环依赖,并且不允许添加

我是否需要将我的模型移出单独的程序集并移入主项目中,或者是否有其他方法对单独程序集中的模型进行远程验证


这里的最佳实践是什么。我读过几篇文章说,将模型放在一个单独的组件中是最佳实践,但如果你不能使用MVC一半的验证功能,那又有什么意义呢。我还注意到,大多数Microsoft MVC示例仅在主项目中显示模型,而没有分解成程序集。

结果表明,这毕竟不是问题。远程验证可以按照上面代码中的指定在单独程序集中的模型中使用


是ReSharper在visual studio中给出了一个错误,控制器未知,并用红色下划线标记,但在实际编译和测试远程验证工作时。

您编写的代码无法识别模型项目中的控制器。,为什么将控制器放在模型程序集中?控制器不在模型程序集中,但需要在模型的“远程”属性中指定控制器,但模型项目对此一无所知,无法添加对它的引用。因此,似乎你不能在一个单独的程序集上使用模型的远程验证属性。你应该考虑制作视图模型,并将属性放在它们上面。然后,您可以拥有业务/模型程序集,并将视图模型与控制器一起放在它们所属的web程序集中。