Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.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 当涉及阵列时,不引人注目的窃听器被发现_Asp.net_Asp.net Mvc_Razor_Asp.net Mvc 4_Unobtrusive Validation - Fatal编程技术网

Asp.net 当涉及阵列时,不引人注目的窃听器被发现

Asp.net 当涉及阵列时,不引人注目的窃听器被发现,asp.net,asp.net-mvc,razor,asp.net-mvc-4,unobtrusive-validation,Asp.net,Asp.net Mvc,Razor,Asp.net Mvc 4,Unobtrusive Validation,我有以下电话: @Html.TextBoxFor(m => m.SelectedName) @Html.TextBoxFor(m => m.Selections[0].Name) 在这两种情况下,我分别用以下注释标记SelectedName和Name [Required(ErrorMessage = "Please provide required value")] 但是,SelectedName会打印正确的不引人注目的html属性: <input

我有以下电话:

    @Html.TextBoxFor(m => m.SelectedName)
    @Html.TextBoxFor(m => m.Selections[0].Name)
在这两种情况下,我分别用以下注释标记
SelectedName
Name

    [Required(ErrorMessage = "Please provide required value")]
但是,SelectedName会打印正确的不引人注目的html属性:

<input id="SelectedName" name="SelectedName" data-val="true" data-val-required="Please provide required value">
===============================表格====================

public class ContainerVM
{
    [Required]
    public string SelectedName {get;set;}
    public MemberVM[] Selections {get;set;}
}

public class MemberVM
{
    [Required]
    public string Name { get;set; }
}
@using MyProject.Models;
@model ContainerVM
@{
    ViewContext.FormContext = new FormContext(); //This is just a hack because the parent isn't defined yet.
}

        @Html.TextBoxFor(m => m.SelectedCptGroupId)
        @Html.TextBoxFor(m => m.CptGroupSelections[0].Name)

在获得更多反馈之前,我不太愿意给出答案,但是

[必需]
注释不能应用于数组或复杂对象

您可以为类的特定元素甚至嵌套类的成员应用
[必需]
注释

显然,我们都知道我们可以诠释经典

[required]
public string SelectedName {get; set;}
这应该行得通。我不能谈论这个问题

但是,相反地,字符串数组上的注释

[required]
public string[] SelectedName {get;set;}
将失败。要成功,必须对模型的每个元素进行注释

同样,如果我们试图用成员注释嵌套模型 [必需] 公共选择模型选择{get;set;}

这也会失败。

最糟糕的是,看起来您正在尝试注释一组模型 [必需] 公共选择模型选择[]{get;set;}

这将再次失败。


什么应该有效(尽管我还没有尝试):

注释嵌套模型选择的每个元素。

然后,数组的每个模型的每个元素都需要输入

    public class SelectionsModel 
    {
        [required]
        public string name {get; set;}
        [required]
        public int age { get; set; }

    }

请分享你的选择声明以及你的注释,也许我误解了。您还没有注释数组?是的,数组模型的成员(名称)是必需的@DaveA不,我对数组的成员类型进行了批注。请共享您的整个表单。我希望会有什么事情发生,戴夫,我已经在晚些时候做了。我正在注释数组的每个元素。它失败了。@Alwyn:Krp。请共享您的模型声明和注释。也许我们可以发现一些令人讨厌的东西。我也有同样的问题,低调不是为了验证而被解雇的。
    public class SelectionsModel 
    {
        [required]
        public string name {get; set;}
        [required]
        public int age { get; set; }

    }