0

MVCアプリにクラスがあり、コントローラーで呼び出して、ビューに値を入力しています

public class Mainclass
    {
    public List<main> mainset = new List<main>();
    public void Crudmain(string path) //Capital "C" => Create, "R" => Read, "U" => update
    {
        XDocument x = new XDocument(new XElement("mainset"));
        foreach (main main in mainset)
        {
            x.Root.Add(mainxml(main)); //mainxml creates xelements for main
        };
        x.Save(path + "/" + 0 + ".xml");
    }
     public class main
    {
        public personalinfo info { get; set; }
        public addressinfo currentaddr { get; set; }
        public addressinfo otheraddr { get; set; }
        public telephone currenttel { get; set; }
        public telephone othertel { get; set; }
     }

私のコントローラーでは、アクションで Crudmain() を呼び出します。

        private main cb = new main(); 
        [HttpPost]
        public ActionResult Create(string button, main x)
        // getting path via some long code
        if (ModelState.IsValid)
        {
        cb = x;
        cb.Crudmain(path);
        return View("Read", cb);
        }
        else
        {
         return View("Create", cb);
        }

XML ファイルを取得していますが、データが空です。Personalinfo のオブジェクトの変数に依存するパスも正しいですが、データは空です。Crudmain が新しいメイン クラスを初期化しているような気がします。VB から C# に移行したばかりで、メソッドがよくわかりません。メインクラスをコード内のコントローラーから渡されたものに設定する方法を教えてください。

4

1 に答える 1

1
private main cb = new main(); 

public ActionResult Create(string button, main x)

cb = x;

で上書きcbしていますxx実際には空白だと思います。しかし、コードが適切にフォーマットされていないか、名前が付けられていないため、見分けるのは非常に困難です。cbがタイプの場合main、関数はありませんCrudmain()-その関数はMainclassクラスにのみ存在するようです。


mainsetもう 1 つの問題は、Mainclass関数にデータを入れていないことです。あなたはそれに新しいリストを割り当てますが、何もしません。しかし、それは、ここでのクラスのフォーマットが混乱していることが原因かもしれません。 cb.Crudmain(path);まだ完全に無効であるように見えます。

于 2013-07-03T13:30:59.750 に答える