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() が機能しない理由は、関数の戻り値の型が Enumerable ではなく TravelGuideViewModel であるためです。

次のようなものを試してください...

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 に答える