c#-一次返回多个视图
我目前正试图在另一个视图中显示我的一个视图(局部视图)。在我的视图中,我一直在使用以下代码:c#-一次返回多个视图,c#,asp.net-mvc,C#,Asp.net Mvc,我目前正试图在另一个视图中显示我的一个视图(局部视图)。在我的视图中,我一直在使用以下代码:@{Html.RenderPartial(“_Pending”);} 我的局部视图位于共享文件夹内。我的目标是使用来自两个不同控制器的逻辑引入两个不同的视图。考虑到我的两个视图(事务索引和挂起的事务(部分)),我基本上希望这两个视图都出现在同一个页面上。问题是,目前,我基本上得到了相同的看法两次 简言之,如何在另一个视图中显示局部视图,而局部视图从另一个控制器返回结果?如果我理解正确,您需要的是获得相同局
@{Html.RenderPartial(“_Pending”);}
我的局部视图位于共享文件夹内。我的目标是使用来自两个不同控制器的逻辑引入两个不同的视图。考虑到我的两个视图(事务索引和挂起的事务(部分)),我基本上希望这两个视图都出现在同一个页面上。问题是,目前,我基本上得到了相同的看法两次
简言之,如何在另一个视图中显示局部视图,而局部视图从另一个控制器返回结果?如果我理解正确,您需要的是获得相同局部视图的结果,但由两个不同的控制器执行 您是否尝试过
@Html.Action
本质上,它与调用Partial是相同的概念,但涉及控制器操作
要使用它,只需创建两个Action,然后在视图中调用@Html.Action,例如:
在控制器中:
public ActionResult Action1() {
return PartialView("__Pending");
}
public ActionResult Action2() {
return PartialView("__Pending");
}
在您的视图中-您也可以在局部视图中调用它
@Html.Action("Action1")
@Html.Action("Action2")
有关部分和动作差异的更多信息请查看
有关使用Html.Action的hwo的更多信息部分始终包含在主视图中。如果您正在通过AJAX进行更新,那么您唯一能够自行返回部分的时间就是。您可能会使用partial来显示客户机列表。您可能会在视图中使用foreach循环来迭代列表(包含在视图模型中),将每个列表作为其模型传递给分部。 查找一个示例以在一个视图中使用多个局部视图。 在aspx页面中:-
<asp:content id="content" contentplaceholderid="CenterContentPlaceHolder" runat="server">
<form id="frmCheckout" name="frmCheckout" method="post">
<div class="rzccartcont">
<%this.Html.RenderPartial("CheckoutProduct", Model);%>
<div class="rzcchkpmnt rzcchkpmnt-bg" id="divChkbottomArea">
<% this.Html.RenderPartial("CheckoutCartProfileInformation", Model); %>
<%this.Html.RenderPartial("CheckoutCartPaymentDetails", Model); %>
</div>
</div>
</form>
</asp:content>
希望它能帮助您。很高兴您解决了这个问题。仅供参考,RenderAction和Action本质上是相同的,只是前者直接写入响应,后者返回html字符串。
<script type="text/javascript">
$(function() {
$('#someButton').click( function() {
$.ajax({
url: '/controller/action',
data: ...some data for action...,
dataType: 'html',
success: function(data) {
$('#partial').html(data);
},
...
});
});
});
</script>
public ActionResult Action(...)
{
var model = ...
...
if (Request.IsAjaxRequest())
{
return PartialView( "Partial", model.PartialModel );
}
else
{
return View( model );
}
}