Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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 mvc万无一失验证客户端脚本在表单提交后才显示_Asp.net Mvc - Fatal编程技术网

Asp.net mvc mvc万无一失验证客户端脚本在表单提交后才显示

Asp.net mvc mvc万无一失验证客户端脚本在表单提交后才显示,asp.net-mvc,Asp.net Mvc,我在MVC 3中的一对问题上使用了万无一失。具体来说,我有一个文本区域的单选按钮,如果选择单选按钮“是”,则文本区域不能为空。我对一些字段进行了其他验证,使用常规的“Required”属性,这些属性可以正常工作,但是“RequiredIfTrue”属性在客户端不进行验证。因此,如果我填写所有字段以便它们进行验证,然后单击收音机上的“是”,但将相应的文本区域留空,然后提交,则表单将命中服务器而不是验证客户端。我还注意到,在浏览器中查看源代码时,“RequiredIfTrue”属性直到表单提交后才添

我在MVC 3中的一对问题上使用了万无一失。具体来说,我有一个文本区域的单选按钮,如果选择单选按钮“是”,则文本区域不能为空。我对一些字段进行了其他验证,使用常规的“Required”属性,这些属性可以正常工作,但是“RequiredIfTrue”属性在客户端不进行验证。因此,如果我填写所有字段以便它们进行验证,然后单击收音机上的“是”,但将相应的文本区域留空,然后提交,则表单将命中服务器而不是验证客户端。我还注意到,在浏览器中查看源代码时,“RequiredIfTrue”属性直到表单提交后才添加到HTML中

我正在为这个项目使用一个ViewModel,这似乎就是问题所在。当前属性位于模型中的属性上,然后我在ViewModel中引用该模型并将ViewModel传递给视图。但是如果我将属性直接放在ViewModel中,它会正常工作。我不想要ViewModel中的属性,因为我不需要向ViewModel添加某种映射代码,以便属性与正确的模型/表相关联吗

以下是项目中包含的脚本:

<link href="@Url.Content("~/Content/mvc.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/jquery-ui-1.8.22.custom.css")" rel="Stylesheet"" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.8.2.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.22.custom.min.js")" type="text/javascript""></script>
<script src="@Url.Content("~/Scripts/HistoryArrayTables.js")" type="text/javascript""></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>

<script src="@Url.Content("~/Scripts/MicrosoftAjax.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftMvcAjax.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftMvcValidation.js")" type="text/javascript"></script>

<script src="@Url.Content("~/Scripts/mvcfoolproof.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MvcFoolproofJQueryValidation.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MvcFoolproofValidation.min.js")" type="text/javascript"></script>
这是ViewModel的一部分:

using Foolproof;

namespace EligibityForm.Models.CompositeModels
{
    public class HistoryViewModel
    {
        public History HistoryModel { get; set; }

谢谢。

将数据注释放在viewmodel上,它们就在那里。将数据注释放在viewmodel上,它们就在那里
using Foolproof;

namespace EligibityForm.Models.CompositeModels
{
    public class HistoryViewModel
    {
        public History HistoryModel { get; set; }