Asp.net mvc 3 MVC3-在razor中定义助手方法合法吗?

Asp.net mvc 3 MVC3-在razor中定义助手方法合法吗?,asp.net-mvc-3,Asp.net Mvc 3,我得到一个错误: CS1513:}应为 我没有看到任何缺少的括号。根据我的经验,razor解析器有时会在确定HTML与C#时出错,因此我对这些错误持保留态度 我做了一些修改,即添加了一个helper方法。通过razor在视图中定义方法实现是否合法?例如 @{ protected string MyHelper(int ItemNumber, int RowNumber, int ColumnNumber) {

我得到一个错误:

CS1513:}应为

我没有看到任何缺少的括号。根据我的经验,razor解析器有时会在确定HTML与C#时出错,因此我对这些错误持保留态度

我做了一些修改,即添加了一个helper方法。通过razor在视图中定义方法实现是否合法?例如

@{
                protected string MyHelper(int ItemNumber, int RowNumber, int ColumnNumber)
                {
                    string irc = "";
                    irc += "i" + ItemNumber;
                    irc += "r" + RowNumber;
                    irc += "c" + ColumnNumber;
                    return irc;
                }
}

Razor实际上有一个内置的助手构造:

@helper greet(string s) {
    <span>Hi there, @s!</span>
}
@helper问候语(字符串s){
你好,@s!
}

Razor实际上有一个内置的助手结构:

@helper greet(string s) {
    <span>Hi there, @s!</span>
}
@helper问候语(字符串s){
你好,@s!
}

+1-这是有用的信息。我将上面的方法转换为使用helper关键字。不幸的是,我仍然有同样的错误,因此我还不能选择这个作为答案。这也不能直接回答我的原始语法是否合法的问题。它不合法,因为
@{…}
构造在方法级别,而不是类级别。如果你愿意,你可以定义一个
动作
,但仅此而已。至于为什么它不起作用,不确定,一个简单的
@:i@ItemNumber@:r@RowNumber@:c@ColumnNumber
帮助器内部应该可以执行此操作。确保不添加返回值。@Blindy:原因是您在razor文件中输入的文本“进入”到代码生成类中的方法中。@{}部分将作为代码“复制/粘贴”,其余部分必须嵌入某种写(“”)调用中。这个生成的类最终被编译,如果您做了一些错误的事情,您可以看到与这个代码生成的文件相关的编译错误。因此,如果你试图在另一个方法体中编写一个方法声明,你会得到同样的C#编译器错误(因为这就是发生的情况)。我是否暗示我没有意识到这一点?+1-这是有用的信息。我将上面的方法转换为使用helper关键字。不幸的是,我仍然有同样的错误,因此我还不能选择这个作为答案。这也不能直接回答我的原始语法是否合法的问题。它不合法,因为
@{…}
构造在方法级别,而不是类级别。如果你愿意,你可以定义一个
动作
,但仅此而已。至于为什么它不起作用,不确定,一个简单的
@:i@ItemNumber@:r@RowNumber@:c@ColumnNumber
帮助器内部应该可以执行此操作。确保不添加返回值。@Blindy:原因是您在razor文件中输入的文本“进入”到代码生成类中的方法中。@{}部分将作为代码“复制/粘贴”,其余部分必须嵌入某种写(“”)调用中。这个生成的类最终被编译,如果您做了一些错误的事情,您可以看到与这个代码生成的文件相关的编译错误。因此,如果你试图在另一个方法体中编写一个方法声明,你会得到同样的C#编译器错误(因为这就是发生的情况)。我是否暗示我没有意识到这一点?