1

我很难解决这个问题,如何创建带有界面的视图模型,

我一直在尝试在线遵循一些示例,即

http://www.rachelappel.com/use-viewmodels-to-manage-data-amp-organize-code-in-asp.net-mvc-applications

http://geekswithblogs.net/michelotti/archive/2009/10/25/asp.net-mvc-view-model-patterns.aspx

但我无法让它工作,任何帮助将不胜感激,我的代码如下。

public class TravelGuideViewModel
    {
    private readonly IGetCountryDetails _IGCD;
    public DisplayCountryDetails displayCountryDetails { get; set; }

    public TravelGuideViewModel(IGetCountryDetails IGCD)
        {
        _IGCD       = IGCD;
        }
    //Trying to get DisplayCountryDetails here, but everything i try does not work
    }

======================更新===============

public class TravelGuideViewModel
    {
    private readonly IGetCountryDetails _IGCD;
    public DisplayCountryDetails displayCountryDetails { get; set; }

    public TravelGuideViewModel(IGetCountryDetails IGCD)
        {
        _IGCD       = IGCD;
        }
    public TravelGuideViewModel Asia()
        {
        var countries = _IGCD.DisplayCountriesOfTheWorldDetails()
            .Where(a => a.strCountryContinent == "Asia").FirstOrDefault();

        return countries.strCountry.AsEnumerable(); << Does not work
        }
    }
4

1 回答 1

0

您的 .AsEnumerable() 不起作用的原因是该函数的返回类型是 TravelGuideViewModel 而不是 Enumerable。

尝试类似...

public TravelGuideViewModel Asia()
{
  var countries = _IGCD.DisplayCountriesOfTheWorldDetails()
       .Where(a =>a.strCountryContinent == "Asia).FirstOrDefault();
      return new TravelGuideViewModel(countries);
}

为了让 View 可以访问某些东西,ViewModel 必须包含一个指向它的指针。将 ViewModel 视为您的 View 试图喝掉的杯子。不是饮料本身。很方便,但如果你不把它填满的话,就没有什么好处了。

于 2013-02-19T21:03:35.903 回答