如果
Html.RenderPartial
就在后面
@using(Ajax.BeginForm(...))
那么您不需要在调用Html.RenderPartial之前加上
@
正如剃刀所理解的那样,你仍然处于同一个代码块中。
所以,这很好:
@using (Ajax.BeginForm(...)) {
Html.RenderPartial("_PartialView", Model);
<p>after partial view inside the ajax form</p>
}
如果在`@using(Ajax。BeginForm(…))和render partial之间有一些html,那么razor将在调用RenderPartial之前结束代码块,您需要这样做:
@using (Ajax.BeginForm(new AjaxOptions())) {
<div>
<h3>partial view inside the ajax form</h3>
@{ Html.RenderPartial("_PartialView", Model); }
</div>
}
还要注意
Html.Render部分
是一个返回void并在内部调用Write的方法,因此使用它的语法与使用时略有不同
Html.Partial
,这就是为什么你需要用“@{”包围它(当它还不在代码块中时),并用分号结束。请参阅
this question