我正在尝试使用Razor在MVC5中呈现部分视图。当我使用
@{ Html.RenderPartial("ViewName", model); }
我遇到了解析器错误:
在“@”字符后面出现意外的“{”。一旦进入代码块的正文中(@if {},@{}等),您无需使用“@ {”切换到代码。
当我删除{}
时,即:
@Html.RenderPartial("ViewName", model);
我遇到了编译错误
无法将类型 'void' 隐式转换为 'object'
我做错了什么?
我正在尝试使用Razor在MVC5中呈现部分视图。当我使用
@{ Html.RenderPartial("ViewName", model); }
我遇到了解析器错误:
在“@”字符后面出现意外的“{”。一旦进入代码块的正文中(@if {},@{}等),您无需使用“@ {”切换到代码。
当我删除{}
时,即:
@Html.RenderPartial("ViewName", model);
我遇到了编译错误
无法将类型 'void' 隐式转换为 'object'
我做错了什么?
@
时才会发生那个错误。例如:@if (true) {
@{ Html.RenderPartial(...); }
}
当执行以下操作时会出现错误:
@if (true) {
<div>
@{ Html.RenderPartial(...); }
</div>
}
可以。您也可以通过完全删除Html.RenderPartial
的代码块来解决此问题,包括@
:
@if (true) {
Html.RenderPartial(...);
}
@Html.Partial("~/View/Home/myview.cshtml")
。与此不同,Html.RenderPartial
在内部调用Write并返回void,而返回字符串。这是错误的:
@Html.RenderPartial("ViewName", model);
这是正确的:
@{ Html.RenderPartial("ViewName", model); }
解析错误可能是由局部视图的内容引起的。例如,如果您有一个电子邮件地址,请确保使用@@正确转义@符号。
@字符后面出现了意外的"{"。一旦进入代码块的主体(@if {}、@{}等),您不需要使用"@{"来切换到代码。
你能展示一下包含RenderPartial的代码吗?我猜想你可能在循环、条件语句或其他类型的代码块中。如果是这样,你只需要调用
Html.RenderPartial("ViewName", model);
使用@Html.Partial()
。它有三个重载,根据您的需求传递参数。
@{ Html.RenderPartial("ViewName", model); }
在任何其他@{}
子句中。请仔细阅读浏览器中收到的错误消息,您不需要使用@{}
来切换到代码,因为您已经在其中,所以只需删除@{
和}
即可使其正常工作。