Syntax 语法问题-Razor MVC4

Syntax 语法问题-Razor MVC4,syntax,razor,partial-views,html-helper,asp.net-mvc-4,Syntax,Razor,Partial Views,Html Helper,Asp.net Mvc 4,我正在尝试使用自定义辅助对象方法显示局部视图。唯一的问题是,我无法克服这个语法问题。这个cshtml文件的模型集是我定义为Operation的一个IEnumerable模型集合。我相信这很容易解决。下面是我看到的一个例子: 我有一段代码: @using(Html.BeginForm()) { <div id="editor_rows"> @foreach (var item in Model){ Html.Rende

我正在尝试使用自定义辅助对象方法显示局部视图。唯一的问题是,我无法克服这个语法问题。这个cshtml文件的模型集是我定义为Operation的一个IEnumerable模型集合。我相信这很容易解决。下面是我看到的一个例子:

我有一段代码:

    @using(Html.BeginForm()) {
       <div id="editor_rows">
          @foreach (var item in Model){
             Html.RenderPartial("OperationEditorRow", item);
          }
       </div>
    }
但是如果我删除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

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

在渲染调用周围添加{},例如{RenderPartial…}

问题已解决。我和一个同事一起做的。结果表明,重新传递到write方法的错误指向了我的局部视图中的一个问题。我在里面的一块代码周围使用了@{},这很可能也会引发其他语法错误。感谢您的回复。

尝试使用
Partial
而不是
RenderPartial
您的代码看起来不错。尝试重新启动Visual Studio。大家都知道它可以修复许多这样的异常现象。谢谢你们的建议。我试过了,但仍然看到同样的错误。我认为问题的核心在于第二条错误消息:无法将类型void正确地转换为object感谢响应,但是当我这样做时,我仍然看到与以前相同的语法错误:“@”字符之后出现意外的“{”。一旦进入代码块体(@if{},@{},等等),就不需要使用“@{”切换到代码。
    The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments