Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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# 在当前ViewResult的每个局部视图上设置ViewContext属性,以禁用jquery非侵入性验证HTML属性生成_C#_Asp.net Mvc_Razor - Fatal编程技术网

C# 在当前ViewResult的每个局部视图上设置ViewContext属性,以禁用jquery非侵入性验证HTML属性生成

C# 在当前ViewResult的每个局部视图上设置ViewContext属性,以禁用jquery非侵入性验证HTML属性生成,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,在我正在进行的项目中,我需要在某些页面上禁用jquery非干扰性验证,并在其他页面上启用它。在项目的当前状态下,验证将在任何地方打开,并且必须在某些页面上禁用。我知道一旦进入控制器,是否必须禁用它 我已经有条件地导入了插件的javascript文件,因此没有不必要的下载。但是,使用默认HTMLHelper的自定义HTMLHelper仍然生成仅由jquery使用的HTML属性—不引人注目的验证。如果我使用Html.EnableClientValidation(false)或ViewContext.

在我正在进行的项目中,我需要在某些页面上禁用jquery非干扰性验证,并在其他页面上启用它。在项目的当前状态下,验证将在任何地方打开,并且必须在某些页面上禁用。我知道一旦进入控制器,是否必须禁用它

我已经有条件地导入了插件的javascript文件,因此没有不必要的下载。但是,使用默认HTMLHelper的自定义HTMLHelper仍然生成仅由jquery使用的HTML属性—不引人注目的验证。如果我使用
Html.EnableClientValidation(false)
ViewContext.ClientValidationEnabled=false
在特定局部视图上,不会为该特定局部视图生成属性-这正是我想要的。但是,由于视图是向后编译的,从最嵌套的视图到主视图,这意味着我需要设置在几乎所有视图中使用
Html.EnableClientValidation
ViewContext.ClientValidationEnabled
,这不是一个选项。。更正:我需要尝试在视图的布局中使用
Html.EnableClientValidation()
,它被称为last(在视图和部分之后)。如果我将
Html.EnableClientValidation()
放在视图中而不是布局中,它将被正确设置。我需要在进入视图之前完成这项工作,以避免在每个视图中都写下这项工作


所以我的问题是,如何在每个视图中获得视图中
ViewContext.ClientValidationEnabled
的效果?是否可以在生成视图之前设置
ViewContext.ClientValidationEnabled
,以便在每页上都显示它?根据我的研究,我可能需要从剃须刀引擎中派生出来?是否没有更简单的解决方案,可能是通过一些
ActionFilter
或直接从控制器获得

找到它:设置
HtmlHelper.ClientValidationEnabled=false将在
ViewResult
PartialViewResult
中作为容器的所有ViewContext中进行设置


在主视图上设置
ViewContext.ClientValidationEnabled
应将该值从我的测试传递给所有子视图。在同一个视图中是否需要一些带验证的部分和一些不带验证的部分?如果我在视图中设置ClientValidationEnabled,则它的部分不会获得相同的值。如果我在分部和视图中放置断点,分部将在父视图之前命中它。我不需要把它从一部分变成另一部分。它应该是一个“父”页面决定。我相信我找到了一个可能的解决方案,目前正在测试。我得到了完全相反的结果,主视图首先到达了断点。您使用什么方法调用/呈现局部视图?
Html.partial()
。您可能正在使用.NET Core吗?也许那里也不一样,我没有用core,你说得对!我的错误。更正:布局称为最后一个。首先调用视图,然后调用局部视图,然后调用布局。很抱歉。