0

初心者っぽい質問:

ビューモデル宣言はどこに置くべきですか?

モデルフォルダに「ViewModels.cs」というファイルを作成しました。RatingViewModelと呼ばれるものを含むいくつかのビューモデルクラスを作成しました。

using System;
using System.Collections.Generic;var
using System.Linq;
using System.Web;

namespace Web.Model
{
public class ViewModels
{

    public class RatingViewModel
    {
        public User Rater { get; set; }
        public Rating Rating { get; set; }
    }

}

} V

ここで、新しいRatingViewModelオブジェクトを返すヘルパー/サービスクラス関数を作成しようとしています。

「RatingsHelpers.cs」ファイルを作成しました。しかし、新しいRatingViewModelオブジェクトを作成しようとすると、何について話しているのかわかりません。私はそれを理解することはできません。私はいくつかの参照を逃していますか?ヘルパー/サービスクラスから新しいビューモデルオブジェクトを作成/返すにはどうすればよいですか?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Text;
using Web.Model;

namespace System.Web.Mvc
{
    public static class RatingsHelpers
    { 
        public static RatingViewModel functionname()
        { ..... }

しかし、それは「RatingViewModel」が何であるかを知りません...!?!?!?

私はこれが明白であるべきだと知っています。

髪を抜いて、

ジョニー

4

3 に答える 3

2

問題は、RatingViewModelクラスをViewModelsクラス内に配置することです。これは、そのクラスがの子クラスであることを意味しViewModelsます。それがあなたの望む行動かどうかはわかりません。子クラスを呼び出したい場合はViewModels.RatingViewModel、クラスを参照するように作成する必要があります。

于 2010-07-25T05:12:46.900 に答える
2

scripniが言ったことを拡張します。Web.Models内のViewModelsクラス内にRatingViewModelクラスをネストすることは不要のようです。おそらく、外部のViewModelsクラスを削除する必要があります。

于 2010-07-25T05:16:23.193 に答える
2

総括する:

  1. 名前空間ViewModels内にクラスを作成しました。Web.Modelこのクラスは、と呼ばれるネストされたクラスを宣言しますRatingViewModel
  2. 名前空間RatingsHelpersにあるヘルパーの内部で、クラスにアクセスしようとしています。System.Web.MvcRatingViewModel

を使用してこれを達成することはできますがViewModels.RatingViewModel、そうすることはお勧めしません。このようなネストクラスは意味がありません。

代わりに、各ビューモデルクラスを個別のファイルに配置し、名前空間.csに直接配置することができます。Web.Model

namespace Web.Model
{
    public class RatingViewModel
    {
        public User Rater { get; set; }
        public Rating Rating { get; set; }
    }
}

次に、ヘルパークラス内で、クラスを直接使用できますRatingViewModel

于 2010-07-25T09:38:37.070 に答える