如何在viewModel中设置值?

时间:2011-11-21 09:22:48

标签: asp.net-mvc asp.net-mvc-3

我有以下内容:

namespace Test {

public class Location {
    public string city { get; set; }
}

public class BaseViewModel {
    public BaseViewModel() {
        Location = new Location { city = "Paris"; };
    }
    public Location Location { get; set; }
}

public class EditViewModel : BaseViewModel {
    public Book Book { get; set; }
    Location = "France";
}

}

这似乎是一个奇怪的要求,但我如何在EditViewModel中设置Location的值?下面的行给出以下错误:

Location = "France";
Error   2   Invalid token '=' in class, struct, or interface member declaration

3 个答案:

答案 0 :(得分:1)

添加构造函数。

public EditViewModel ()  {
  Location = "France";
}

或更好地添加专门的构造函数和默认构造函数:

    public EditViewModel (string LocationText)  {
      Location = LocationText;
    }

    public EditViewModel() : this("France") { }

准确地说,不要使用字符串,使用你的Object,我用字符串来加速。

答案 1 :(得分:0)

您需要实例化对象Location,而不是将其设置为字符串:

Location = new Location { city = "France" }; 

并且如果使用其他名称重命名该属性,最好不要使用类名。

public class BaseViewModel { 
    public BaseViewModel() { 
        CurrentLocation = new Location { city = "Paris"; }; 
    } 
    public Location CurrentLocation { get; set; } 
}

public class EditViewModel : BaseViewModel { 
    public Book Book { get; set; } 
    public EditViewModel() : base()
    {
        CurrentLocation = new Location { city = "France"; }; 
    }
} 

答案 2 :(得分:0)

您只需要更改EditViewModel类..

像这样:

public class EditViewModel : BaseViewModel {
    public Book Book { get; set; }

    public EditViewModel(){
        Location = "France";
    }
}

*您试图将值设置为类范围内的基类属性。这是不允许的。

您可以在构造函数中对类中的任何其他方法执行此操作。如上所述..

希望这有帮助!