2011-11-26 24 views
0

我覺得我在這裏錯過了一些明顯的東西。我只是想嘗試在屏幕上輸出一些簡單的XML輸出,所以我的模型將一個xml文件作爲一個簡單的mvc3應用程序中的XElement引入到視圖中。問題是沒有任何助手方法的HTML正在生成。如果我嘗試在常規的foreach循環代碼中呈現相同的元素,它可以正常工作,但它幾乎就像是完全跳過輔助程序,或者只是不足以呈現元素。ASP.NET MVC 3 - 無法在助手方法中正確添加控件

有什麼簡單的我失蹤了嗎?

@helper NavigateElement(XElement xElement) 
{ 
    if (xElement.HasElements) 
    { 
     foreach (XElement xChildElement in xElement.Elements()) 
     { 
      NavigateElement(xChildElement); 
     } 
    } 
    else 
    { 
     @Html.Label(xElement.Name.LocalName.ToString()) 
     @Html.TextBox(xElement.Name.ToString(), xElement.Value) 
    } 
} 


@foreach (XElement xElement in Model.exampleXML.Elements()) 
{ 
    if (xElement.HasElements) 
    { 
     foreach (XElement xChildElement in xElement.Elements()) 
     { 
      NavigateElement(xChildElement); 
     } 
    } 
    else 
    { 
     @Html.Label(xElement.Name.LocalName.ToString()) 
     @Html.TextBox(xElement.Name.ToString(), xElement.Value) 
    } 
} 

回答

0

你是否真的在任何地方打電話給你的幫手?

@NavigateElement(Model.exampleXML) 
+0

......這就是確切的問題,我需要在電話前使用@我知道它必須是簡單的東西! 謝謝彼得。 – MoP

0

不應該你的else塊看起來像這樣?

else 
{ 
    Html.Label(xElement.Name.LocalName.ToString()) 
    Html.TextBox(xElement.Name.ToString(), xElement.Value) 
} 
+0

如果您在代碼塊中的每個語句的末尾添加了分號,則意味着與我發佈的內容完全相同(至少從我的理解)。無論哪種方式,我給了你所說的嘗試,它沒有任何區別。 – MoP

相關問題