Asp.net mvc 5 MVC@helper的错误用法?

Asp.net mvc 5 MVC@helper的错误用法?,asp.net-mvc-5,Asp.net Mvc 5,我制作了一个助手,用来帮助我调试我的应用程序 它首先显示一个标题。 然后它尝试运行一段代码,返回一个fews参数(对象数组)。 这些参数以字符串格式使用,该格式在块正常运行时显示。 如果该块导致异常,将显示异常 问题是,当我调用helper时,根本没有显示任何内容(我对该功能非常陌生) 怎么了 @{ Layout = "~/Views/Shared/_Layout.cshtml"; } @using MygLogWeb.Classes.Fox <span>test<

我制作了一个助手,用来帮助我调试我的应用程序

它首先显示一个标题。 然后它尝试运行一段代码,返回一个fews参数(对象数组)。 这些参数以字符串格式使用,该格式在块正常运行时显示。 如果该块导致异常,将显示异常

问题是,当我调用helper时,根本没有显示任何内容(我对该功能非常陌生)

怎么了

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

@using MygLogWeb.Classes.Fox

<span>test</span>

@helper TryMethod(
    string header
    , Func<object[]> act
    , string successFormat
)
{
    @Html.Raw(String.Format(
        @"<h2>{0}</h2>"
        , HttpUtility.HtmlEncode(header)
    ));

    try
    {
        var args = act();

        if (successFormat == null)
        {
            @Html.Raw(@"<span class='Success'>OK</span>");
        }
        else
        {
            @Html.Raw(String.Format(
                @"<span class='Success'>{0}</span>"
                , HttpUtility.HtmlEncode(String.Format(
                    successFormat
                    , args
                ))
            ));
        }
    }
    catch (Exception exe)
    {
        @Html.Raw(String.Format(
            @"<span class='Error'>{0}</span>"
            , HttpUtility.HtmlEncode(exe.Message)
        ));
    }
}

<span>test</span>

@{
    TryMethod(
        "Cust.Columns"
        , () => {
            return new object[]
            {
                Cust.Columns.Count
            };
        }
        , "Count: {0}"
    );
}

<span>test</span>
@{
Layout=“~/Views/Shared/_Layout.cshtml”;
}
@使用MygLogWeb.Classes.Fox
测试
@辅助训练法(
字符串头
,Func法案
,字符串成功格式
)
{
@Html.Raw(String.Format(
@"{0}"
,HttpUtility.HtmlEncode(标题)
));
尝试
{
var args=act();
if(successFormat==null)
{
@Html.Raw(@“OK”);
}
其他的
{
@Html.Raw(String.Format(
@"{0}"
,HttpUtility.HtmlEncode(String.Format(
成功格式
,args
))
));
}
}
捕获(异常exe)
{
@Html.Raw(String.Format(
@"{0}"
,HttpUtility.HtmlEncode(exe.Message)
));
}
}
测试
@{
试验方法(
“客户列”
, () => {
返回新对象[]
{
Cust.Columns.Count
};
}
,“计数:{0}”
);
}
测试

问题不在于helper方法本身,而在于执行

当您这样执行时:

@{
    TryMethod(...);
}
代码已执行,但它是一个代码块,但未写入输出。 请改用以下语法:

@(TryMethod(...))
这应该行得通