是否可以在@内使用@Html.RenderPartial (Ajax.BeginForm)代码块?如果我使用@Html.RenderPartial,它就不起作用了,如果我将整个剃须刀代码直接放在@ use (Ajax.BeginForm)块中,它就会起作用。
有人能告诉我这是否可能吗?
发布于 2013-10-09 12:32:10
如果Html.RenderPartial就在@using(Ajax.BeginForm(...))之后,那么您就不需要在对Html.RenderPartial的调用前加上@,因为剃刀知道您仍然在同一个代码块中。
所以,这样做很好:
@using (Ajax.BeginForm(...)) {
Html.RenderPartial("_PartialView", Model);
<p>after partial view inside the ajax form</p>
}如果在`@ the (Ajax.BeginForm(.))之间并且呈现部分您有一些html,然后剃刀将结束代码块在您调用RenderPartial之前,您需要这样做:
@using (Ajax.BeginForm(new AjaxOptions())) {
<div>
<h3>partial view inside the ajax form</h3>
@{ Html.RenderPartial("_PartialView", Model); }
</div>
}还请注意,Html.RenderPartial是一个返回void和内部调用写的方法,因此使用它的语法与使用Html.Partial时略有不同,这就是为什么您需要用"@{“(当已经不在代码块中时)包围它,并以分号结尾。请参阅this question
https://stackoverflow.com/questions/19270211
复制相似问题