2013-07-03 50 views
0

我在我的MVC應用程序一類,我在我的位指示我打電話並獲得價值填補我看來如何在C#中構造方法?

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文件,但數據爲空。即使是依賴於個人信息中的對象的變量的路徑是正確的,但數據是空的。我有一種感覺,Crudmain正在初始化一個新的主類。我剛剛從VB轉換到C#,並且不太瞭解這些方法,有人可以幫我弄清楚如何將Mainclass設置爲我的代碼中控制器傳遞的類。

+2

如果你給出了一個[SSCCE](http://sscce.org)和它應該做什麼的描述,這將是一個更好的問題。 –

+0

對於大多數意圖和目的,有更好的方法來在.net中創建XML文檔。我同意肯德爾的觀點,給出一個輸出的描述或例子,應該有更好的方法來做到這一點。 –

+0

基本上我只想要一個方法,使Crudmain(路徑)將datainside保存爲XML。 –

回答

1
private main cb = new main(); 

public ActionResult Create(string button, main x) 

cb = x; 

您正在用x覆蓋cb。我假設x實際上是空白的。但是很難說,因爲你的代碼沒有被格式化或命名得很好。如果cb的類型爲main,則它沒有Crudmain()函數 - 該函數似乎只存在於Mainclass類中。


的另一個問題是,你永遠不會把任何數據到mainsetMainclass功能。你給它分配一個新的列表,但不要對它做任何事情。但這可能是因爲你的類在這裏被格式化的困惑。 cb.Crudmain(path);似乎仍然是完全無效的。

+0

X在傳遞給視圖時是空白的,但用戶將其填滿。我已經證實,一旦由視圖返回,它不再是空白的。 –

+0

@FloodGravemind - 代碼不夠清晰,我們無法提供幫助,但我在回答中編輯了另一個建議。 – Bobson

+0

顯然我不知道如何得到設置在C中工作,所以我的主類只有字段和沒有財產。非常感謝您的幫助。 –