我有一个“Home”视图,在其中我渲染了2个部分视图_P1& _p2。 以下是我在Home View中的代码:
<div>
<div>
@Html.Partial("_P1")
</div>
<div>
@Html.Partial("_p2")
</div>
</div>
我在_P1上有一个文本框和一个提交按钮,而_P2上只有一个标签,当我点击提交时,我希望发布数据,但是要将用户重定向到包含_P1&amp;的同一视图。 _p2。但_P2在提交后不会被渲染。
_P1上的代码:
@using (Ajax.BeginForm("_P1", "Home", new AjaxOptions(), new { Id = "_P1form" }))
{
@Html.LabelFor(m=>m.Name)
@Html.TextBoxFor(m=>m.Name)
}
<input type="button" value="Save Form Data" class="save-button" onclick="submitform();"/>
请帮助。
答案 0 :(得分:0)
只需使用viewbag。根据您所在的步骤和视图
将其设置在控制器上@if(!ViewBag.PostBack){
@Html.Partial("_p2")
}
答案 1 :(得分:0)
以他们正在进行的方式渲染第一个部分,但单击按钮时可以渲染第二个局部视图。使用以下代码更新您的开始。
在AjaxOptions中,您可以执行以下操作
@using (
Ajax.BeginForm("**Action Name from your controller**"
, "**Controller Name**"
, new AjaxOptions
{
HttpMethod ="Get", *// this can be get or post*
InsertionMode = InsertionMode.Replace, *// this will replace the content of the div. you can use the others like InsertAfter", "InsertBefore", or "Replace"*
UpdateTargetId="**Name of the div where you want to write the content**"
}
)
{
<div id="**div to be replaced**">
</div>
}
查看用于描述ajax选项方法可用的其他选项的网址。AjaxOptions Class
如果您希望显示进度指示器,那么有趣的是onBegin和onComplete