0

MVC 4 ビューで使用されるモデルを作成していますが、それ自体の値をロードするメソッドの作成に行き詰まっています。

私のコントローラーで:

public ActionResult Index(int id)
{
    MyModel _Model = new MyModel();
    _Model.LoadValues(id); //Now that's init'd, get it's values
    return View(_Model);
}

問題はメソッド "LoadValues()" にあります - "this" を参照として渡すことは許可されていません =/

マイモデル:

public class MyModel
{
public string Value1 { get; set; }
public string Value2 { get; set; }

    public MyModel()
    {
    }

    public LoadValues(int id)
    {
        //I would like to pass "this" to the method as a ref so it could directly fill the values
        DAL.LoadMyModel(id, ref this); //doesn't work

        //My work around is this, but there has to be a better way....
        MyModel _TempModel = new MyModel(); //this
        DAL.LoadMyModel(id, ref _TempModel); //is
        Value1 = _TempModel.Value1; //very
        Value2 = _TempModel.Value2; //terribad
    }

}

「LoadValues(int id)」を「LoadValues(int id, ref MyModel _TempModel)」に変更することもできると思います。それが正しい方法である場合は、それが私が行うことだと思います。しかし、「これ」を渡すのはとてもいいことです!! :)

私がやろうとしていることは可能ですか?なぜ「これ」は読み取り専用で、別のメソッドに渡すことができないのですか?

4

2 に答える 2

2

「参照」を使用する必要はありません。MyModel クラスは参照型であるため、常に参照によって渡されます。

于 2013-04-10T15:48:49.493 に答える