2

是否可以在 @using(Ajax.BeginForm) 代码块中使用 @Html.RenderPartial ?如果我使用@Html.RenderPartial,它不起作用,如果我将整个剃须刀代码直接放在@using(Ajax.BeginForm) 块中,它就会起作用。

有人可以建议这是否可能吗?

4

1 回答 1

5

如果紧随其后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,这就是为什么你需要用“@{”将它括起来(当不在代码块中时)和用分号结束。看到这个问题

于 2013-10-09T12:32:10.473 回答