C# 模型属性在另一个模型中无法访问

C# 模型属性在另一个模型中无法访问,c#,asp.net-mvc,class,model-view-controller,C#,Asp.net Mvc,Class,Model View Controller,我试图通过继承IValidatableObject访问当前模型(PropertyDetails\u Master)中另一个模型的(Property\u Master)属性,以进行条件验证。但当我创建另一个模型的对象(属性的对象)时,它返回属性的空值。如何获取另一个模型的属性值 在我的代码中 public class Property_Master : IValidatableObject { //Another Properties [DisplayName("Property Typ

我试图通过继承
IValidatableObject
访问当前模型(
PropertyDetails\u Master
)中另一个模型的(
Property\u Master
)属性,以进行条件验证。但当我创建另一个模型的对象(属性的对象)时,它返回属性的空值。如何获取另一个模型的属性值

在我的代码中

public class Property_Master : IValidatableObject
{

  //Another Properties

 [DisplayName("Property Type")]
    [Required(ErrorMessage = "* Please Select Property Type.")]
    public string PR_PropertyType 
    {
        get { return strPropertyType;}
        set { strPropertyType=value;}
    }
}
在另一个模型中,我想使用上面的
PR\u PropertyType
来检查
PropertyDetails\u Master
模型中的条件

 public class PropertyDetails_Master : IValidatableObject
{
  Property_Master pm = new Property_Master();

    [DisplayName("Flat No.")]
    public string PR_FlatNo { get; set; }

    [DisplayName("Floor No.")]
    public Nullable<int> PR_Floor { get; set; }

    [DisplayName("No. Of Bedrooms")]
    [Required(ErrorMessage = "* Please Enter No. Of Bedrooms.")]
    public Nullable<int> PD_Bedrooms { get; set; }

    [DisplayName("No. Of Bathrooms")]
    [Required(ErrorMessage = "* Please Enter No. Of Bathrooms.")]
    public Nullable<int> PD_Bathrooms { get; set; }

    if (pm.PR_PropertyType=="Flat")
        {
            if (this.PR_FlatNo == "" || this.PR_FlatNo == null)
            {
                yield return new ValidationResult("* Flat No. Should Filled", new[] { "PR_FlatNo" });
            }

            if (this.PR_Floor == 0 || this.PR_Floor == null)
            {
                yield return new ValidationResult("* Floor No. Should Filled", new[] { "PR_Floor" });
            }
        }



}
公共类PropertyDetails\u主控:IValidatableObject
{
Property_Master pm=新属性_Master();
[显示器名称(“单元号”)
公共字符串PR_FlatNo{get;set;}
[显示名称(“楼层编号”)
公共可空PR_Floor{get;set;}
[显示名称(“卧室数量”)]
[必需(ErrorMessage=“*请输入卧室数量。”)]
公共可为空的PD_卧室{get;set;}
[显示名称(“浴室数量”)]
[必需(ErrorMessage=“*请输入浴室数量。”)]
公共可为空的PD_浴室{get;set;}
如果(pm.PR_PropertyType==“平面”)
{
if(this.PR_FlatNo==“”| | this.PR_FlatNo==null)
{
产生返回新的ValidationResult(“*单位编号应填写”,新[]{“PR_单位编号”});
}
if(this.PR_Floor==0 | | this.PR_Floor==null)
{
产生返回新的ValidationResult(“*应填写楼层编号”,新[]{”PR_Floor“});
}
}
}

现在在上面的代码中,当我在
pm.PR_PropertyType
上使用调试器检查时,它返回null。因此,我如何访问
propertydeails\u Master
类中的
PR\u PropertyType
属性?

因为
pm
property\u Master
的新实例,我们不能使用
pm
访问
PR\u PropertyType
,当然不能。您可以将
pm
设置为新实例,而不是现有实例。不清楚您想要比较的现有实例在哪里。您的视图是否同时包含
propertydeails\u Master
Property\u Master
?是的,我的视图同时包含
propertydeails\u Master
Property\u Master
。如何使用现有实例?请使用包含所需所有属性的视图模型。并使用实现
IClientValidatable
的条件验证属性(例如,一个或类似的属性),而不是
IValidatableObject
,以便同时获得客户端和服务器端验证