首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Razor renderpartial exception -预期为‘}’“

Razor renderpartial exception -预期为‘}’“
EN

Stack Overflow用户
提问于 2011-03-20 23:49:48
回答 5查看 2.7K关注 0票数 4

在我的代码中:

代码语言:javascript
复制
@foreach (var post in Model.Posts)
{
    Html.RenderPartial("ShowPostPartial", post);
}

我在RenderPartial线路上有个例外。

错误CS1513:}应为。

我做错了什么?

EN

回答 5

Stack Overflow用户

发布于 2011-03-21 01:24:14

为了完整性,这里有另一种导致这种情况的方法:

代码语言:javascript
复制
@if(condition)
{
    <input type="hidden" value="@value">
}

问题是,非闭合元素使得内容是html块变得不够明显(但我们并不总是使用xhtml,对吧?)。

在这种情况下,您可以使用:

代码语言:javascript
复制
@if(condition)
{
    @:<input type="hidden" value="@value">
}

代码语言:javascript
复制
@if(condition)
{
    <text><input type="hidden" value="@value"></text>
}
票数 2
EN

Stack Overflow用户

发布于 2012-07-20 20:22:51

这基本上与Mark Gravell给出的答案相同,但我认为如果你有更大的视角,这是一个很容易犯的错误:检查html标记,看看它们在哪里开始和结束,并注意介于两者之间的剃刀语法,这是错误的:

代码语言:javascript
复制
@using (Html.BeginForm())
{ 
   <div class="divClass">
     @Html.DisplayFor(c => c.SomeProperty)
}
</div>

这是正确的:

代码语言:javascript
复制
@using (Html.BeginForm())
{ 
   <div class="divClass">
     @Html.DisplayFor(c => c.SomeProperty)
   </div>
}

同样,与前面关于未关闭的输入元素的帖子几乎相同,但请注意,我在更改视图时多次放置了错误的div。

票数 2
EN

Stack Overflow用户

发布于 2011-03-20 23:56:48

我在Razor上遇到了这个问题。我不确定这是解析器中的bug还是什么,但我解决这个问题的方法是分解:

代码语言:javascript
复制
@using(Html.BeginForm()) { 
<h1>Example</h1>
@foreach (var post in Model.Posts)
{
    Html.RenderPartial("ShowPostPartial", post);
}

} 

进入:

代码语言:javascript
复制
@{ Html.BeginForm(); }
<h1>Example</h1>
@foreach (var post in Model.Posts)
{
    Html.RenderPartial("ShowPostPartial", post);
}

@{ Html.EndForm(); }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5369540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档