6

我正在尝试使用自定义辅助方法显示部分视图。唯一的问题是,我无法解决这个语法问题。此 cshtml 文件的模型集是我定义为 Operation 的 IEnumerable 模型集合。我确信这是一个简单的解决方法。这是我所看到的一个例子:

我有这段代码:

    @using(Html.BeginForm()) {
       <div id="editor_rows">
          @foreach (var item in Model){
             Html.RenderPartial("OperationEditorRow", item);
          }
       </div>
    }

这在运行时给了我以下错误:

    Unexpected "{" after "@" character. Once inside the body of a code block (@if {}, @{}, etc.) you do not need to use "@{" to switch to code.

但是,如果我删除 foreach 语句前面的 @ 符号,所有内容都会被解释为纯文本。所以我尝试在 Html 前面放置一个@,如下所示:

    @using(Html.BeginForm()) {
       <div id="editor_rows">
          @foreach (var item in Model){
             @Html.RenderPartial("OperationEditorRow", item);
          }
       </div>
    }

这会带来一个编译错误,上面写着:

    Cannot implicitly convert type void to object

如果我从这里运行项目,我会收到一个运行时错误,上面写着:

    The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments

我假设这与先前的错误有关。如果有人对我有建议,请帮助。

4

2 回答 2

1

问题解决了。我和一个同事一起做这个。事实证明,写入方法的错误指向了我的局部视图中的问题。我在其中的一段代码周围使用了@{},这很可能也会引发其他语法错误。感谢您的回复。

于 2012-06-26T12:59:14.260 回答
0

在您的渲染调用周围添加 {},例如 @{RenderPartial...}

于 2012-06-26T04:42:25.890 回答