Asp.net mvc 4 如何在Ajax.Beginform内使用@Html.RenderPartial?

Asp.net mvc 4 如何在Ajax.Beginform内使用@Html.RenderPartial?,asp.net-mvc-4,renderpartial,ajax.beginform,Asp.net Mvc 4,Renderpartial,Ajax.beginform,是否可以在@using(Ajax.BeginForm)代码块中使用@Html.RenderPartial? 如果我使用@Html.RenderPartial,它就不起作用,如果我将整个razor代码直接放在@using(Ajax.BeginForm)块中,它就起作用了 有人能建议一下这是否可行吗 如果Html.RenderPartial正好在@使用(Ajax.BeginForm(…)之后,那么您不需要在调用Html.RenderPartial之前加上@,因为razor知道您仍然在同一代码块中 因

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


有人能建议一下这是否可行吗

如果
Html.RenderPartial
正好在
@使用(Ajax.BeginForm(…)
之后,那么您不需要在调用Html.RenderPartial之前加上
@
,因为razor知道您仍然在同一代码块中

因此,这很好:

@using (Ajax.BeginForm(...)) {            
    Html.RenderPartial("_PartialView", Model);
    <p>after partial view inside the ajax form</p>
}
@使用(Ajax.BeginForm(…){
Html.RenderPartial(“_PartialView”,Model);
在ajax表单内部的局部视图之后

}
如果在`@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>
}
@使用(Ajax.beginnform(新的AjaxOptions()){
ajax表单内部的局部视图
@{Html.RenderPartial(“_PartialView”,Model);}
}
还要注意的是,
Html.RenderPartial
是一个返回void并在内部调用Write的方法,因此使用它的语法与使用
Html.Partial
时略有不同,这就是为什么需要将它用“@{”(不在代码块中时)包围,并以分号结尾。请参阅