是否可以在 @using(Ajax.BeginForm) 代码块中使用 @Html.RenderPartial ?如果我使用@Html.RenderPartial,它不起作用,如果我将整个剃须刀代码直接放在@using(Ajax.BeginForm) 块中,它就会起作用。
有人可以建议这是否可能吗?
是否可以在 @using(Ajax.BeginForm) 代码块中使用 @Html.RenderPartial ?如果我使用@Html.RenderPartial,它不起作用,如果我将整个剃须刀代码直接放在@using(Ajax.BeginForm) 块中,它就会起作用。
有人可以建议这是否可能吗?
如果紧随其后Html.RenderPartial
,@using(Ajax.BeginForm(...))
那么您不需要在对 Html.RenderPartial 的调用前加上@
razor 了解您仍然在同一个代码块中。
所以,这很好用:
@using (Ajax.BeginForm(...)) {
Html.RenderPartial("_PartialView", Model);
<p>after partial view inside the ajax form</p>
}
如果在 `@using(Ajax.BeginForm(...)) 和渲染部分之间有一些 html,那么 razor 将在您调用 RenderPartial 之前结束代码块,您需要这样做:
@using (Ajax.BeginForm(new AjaxOptions())) {
<div>
<h3>partial view inside the ajax form</h3>
@{ Html.RenderPartial("_PartialView", Model); }
</div>
}
另请注意,这Html.RenderPartial
是一个返回 void 并在内部调用 Write 的方法,因此使用它的语法与使用时略有不同Html.Partial
,这就是为什么你需要用“@{”将它括起来(当不在代码块中时)和用分号结束。看到这个问题