ASP.NET MVC 3 - 无法在辅助方法中正确添加控件

发布于 2024-12-17 22:42:17 字数 964 浏览 0 评论 0原文

我觉得我在这里遗漏了一些明显的东西。我只是想尝试将一些简单的 XML 输出输出到屏幕上,因此我让我的模型将 xml 文件作为简单 mvc3 应用程序中的 XElement 引入到视图中。问题是辅助方法中没有生成任何 html。如果我尝试在常规 foreach 循环代码中渲染相同的元素,它工作正常,但几乎就像完全跳过了助手,或者只是不够关心渲染元素。

我缺少什么简单的东西吗?

@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)
    }
}

I feel like I'm missing something obvious here. I just wanted to try putting out some simple XML output onto a screen, so I have my model bringing in an xml file to the view as an XElement in a simple mvc3 app. The problem is that none of the html from the helper method is being generated. If I try to render the same elements in the regular foreach loop code it works fine, but it's almost as though it's completely skipping over the helper, or just not caring enough to render the element.

Is there something simple I'm missing?

@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)
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

So要识趣 2024-12-24 22:42:17

你真的在任何地方给你的助手打电话吗?

@NavigateElement(Model.exampleXML)

Do you actually call your helper anywhere?

@NavigateElement(Model.exampleXML)
月牙弯弯 2024-12-24 22:42:17

你的 else 块不应该像这样吗?

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

shouldn't your else blocks look like this?

else
{
    Html.Label(xElement.Name.LocalName.ToString())
    Html.TextBox(xElement.Name.ToString(), xElement.Value)
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文