C# 在MVC3中,我有一个包含3个局部视图的视图。如何使第三个局部视图显示在同一页面上?
我有3个局部视图。第一个局部视图有一个下拉列表。您从下拉列表中选择某个内容,然后第二个部分视图将加载到同一页面上它的正下方 然后在我的第二个部分视图中有一个搜索表单(html.BeginForm),当我提交表单时,我想在第二个部分视图下打开第三个部分视图 第三个局部视图有一个采用模型的剑道ui网格 现在的问题是,第三个局部视图在不同的页面上呈现 视图:C# 在MVC3中,我有一个包含3个局部视图的视图。如何使第三个局部视图显示在同一页面上?,c#,jquery,.net,asp.net-mvc,kendo-asp.net-mvc,C#,Jquery,.net,Asp.net Mvc,Kendo Asp.net Mvc,我有3个局部视图。第一个局部视图有一个下拉列表。您从下拉列表中选择某个内容,然后第二个部分视图将加载到同一页面上它的正下方 然后在我的第二个部分视图中有一个搜索表单(html.BeginForm),当我提交表单时,我想在第二个部分视图下打开第三个部分视图 第三个局部视图有一个采用模型的剑道ui网格 现在的问题是,第三个局部视图在不同的页面上呈现 视图: Html.BeginForm将执行一个完整的页面发布。我相信你想要的是Ajax.BeginForm 例如: @using (Ajax.
Html.BeginForm将执行一个完整的页面发布。我相信你想要的是Ajax.BeginForm 例如:
@using (Ajax.BeginForm("TheActionResultYouWantToInvokeThatWillReturnTheThirdView", "YourController", null, new AjaxOptions { UpdateTargetId = "theIdOfTheDivForTheThirdView", OnSuccess = "doFunctionIfYouNeedTo", OnFailure = "ShowPopUpErrorIfYouWant" }))
{
}
添加的邮政编码编辑:
此标记无效,这可能是UpdateTargetId找不到Div的原因
<section>
<div id="searchpanel">
@html.Partial("_1stPartial")
<div id="2ndPartialDiv"></div>
<div id="3rdPartialDiv"></div>
</div>
</section>
@html.Partial(“\u 1stPartial”)
请参阅属性上的结束语标记。Html.BeginForm将执行一篇整版文章。我相信你想要的是Ajax.BeginForm 例如:
@using (Ajax.BeginForm("TheActionResultYouWantToInvokeThatWillReturnTheThirdView", "YourController", null, new AjaxOptions { UpdateTargetId = "theIdOfTheDivForTheThirdView", OnSuccess = "doFunctionIfYouNeedTo", OnFailure = "ShowPopUpErrorIfYouWant" }))
{
}
添加的邮政编码编辑:
此标记无效,这可能是UpdateTargetId找不到Div的原因
<section>
<div id="searchpanel">
@html.Partial("_1stPartial")
<div id="2ndPartialDiv"></div>
<div id="3rdPartialDiv"></div>
</div>
</section>
@html.Partial(“\u 1stPartial”)
请参见属性上的闭幕词标记。我从您的问题中了解到的是,您正在从第一个
PartialView
提交,如果成功,您将显示第二个。这个也一样。如果成功地从第二个PartialView
发布了POST
,则需要显示第三个
为什么不从客户端使用Ajax
$.ajax ({
type:'POST'
data: {},
success: function(response){
$('.specific_div_container_for_previous_partial').hide();
$('.specific_div_container_for_partial').html(response.Html);
$('.specific_div_container_for_partial').show();
},
error: function(){
// whatever
}
});
在服务器端,您将使用PartialView
返回呈现的html。要在变量中呈现PartialView
,并将其作为json对象发送到客户端,请签出
更新-如何在jquery中序列化表单:
请遵循我从您那里了解到的问题是,您正在从第一个部分视图
提交,如果成功,您将显示第二个。这个也一样。如果成功地从第二个PartialView
发布了POST
,则需要显示第三个
为什么不从客户端使用Ajax
$.ajax ({
type:'POST'
data: {},
success: function(response){
$('.specific_div_container_for_previous_partial').hide();
$('.specific_div_container_for_partial').html(response.Html);
$('.specific_div_container_for_partial').show();
},
error: function(){
// whatever
}
});
在服务器端,您将使用PartialView
返回呈现的html。要在变量中呈现PartialView
,并将其作为json对象发送到客户端,请签出
更新-如何在jquery中序列化表单:
请遵循您所说的“在不同的页面上呈现”是什么意思?您可以在视图中发布代码吗?你是在用AJAX加载第三个视图吗?Justin,它会形成一个完整的页面帖子,并将我的partialview放到一个新页面上。你说的“在另一个页面上呈现”是什么意思?你能在视图中发布代码吗?你是在用AJAX加载第三个视图吗?Justin,它会形成一个完整的页面,并将我的partialview放到一个新页面上。我也一直在尝试AJAX.beginfound。似乎总是在我的控制器中转到我的操作结果,并以相同的方式执行。从控制器返回部分视图琼斯是正确的,赛斯。如果您需要更多帮助,请发布一些代码。我正在从控制器返回部分视图。很抱歉没有发布代码。我们的开发是在一个完全隔离的网络中完成的。我将尝试在这里为您提供一个示例。另一件事可能是您没有在表单的AjaxOptions中指定UpdateTargetId,这也会用部分IIRC替换整个页面。我也一直在尝试Ajax.Begin。似乎总是在我的控制器中转到我的操作结果,并以相同的方式执行。从控制器返回部分视图琼斯是正确的,赛斯。如果您需要更多帮助,请发布一些代码。我正在从控制器返回部分视图。很抱歉没有发布代码。我们的开发是在一个完全隔离的网络中完成的。我将尝试在这里为您提供一个示例。另一件事可能是您没有在表单的AjaxOptions中指定UpdateTargetId,这也会用部分IIRC替换整个页面。我想我也尝试过这个。我会在javascript中有一个表单提交事件吗?如何从这里将模型数据传递到控制器中的操作?我仍然使用Ajax.BeginForm吗?您可以在表单上有一个普通按钮(input type='button')。如果您这样做,那么应该在jquery中创建一个单击处理程序。在该点击处理程序上,您可以在数据变量中发送表单stringized和序列化的JSON.stringify($('form').serialize)。顺便说一句:我已经更新了我的问题,我想我也试过了。我会在javascript中有一个表单提交事件吗?如何从这里将模型数据传递到控制器中的操作?我仍然使用Ajax.BeginForm吗?您可以在表单上有一个普通按钮(input type='button')。如果您这样做,那么应该在jquery中创建一个单击处理程序。在该点击处理程序上,您可以在数据变量中发送表单stringized和序列化的JSON.stringify($('form').serialize)。顺便说一句:我已经更新了我的问题