我有一个父页面( DistributionReview.aspx ),其存款日期可以使用DatePicker进行选择。
在下面我有两个标签(* DistributionByType *和 DistibutionByStatus ),我想要加载PartialViews。 此处PartialView的参数为DepositDate 。
我有一个名为 DistributionReviewModel 的自定义ViewModel,父页面正在实施。
我遇到了直接加载静态局部视图的文章(例如: http://www.kevgriffin.com/blog/index.php/2010/02/23/using-jquery-tabs-and-asp-net-mvc-partial-views-for-ajax-goodness/ )。但我正在通过传递参数来寻找任何代码示例/文章?
感谢是否有人可以共享代码示例来传递参数,并且在TabSelection更改并且更改了DepositDate时加载部分视图。
感谢您的时间。
Html代码:
<script type="text/javascript">
$(function () {
//tab
$("#divDistributionReview").tabs();
$("#fileDepositDate").datepicker(); //DateTime Picker
var depositDate = $("#fileDepositDate").val();
});
<div id="container" >
<% using (Html.BeginForm("frmDistributionReview", "DistibutionReview"))
{ %>
<div> Select a Date: <input type="text" id="fileDepositDate" name="datepicker" value='<%= ViewData["FileDepositDate"] %>' /></div>
<div id="divDistributionReview">
<ul>
<li><a href="/DistributionReview/DistributionByType">Distribution Type</a></li>
<li><a href="/DistributionReview/DistributionByStatus">Status</a></li>
</ul>
</div>
<%} %>
</div>
C#代码:
public ActionResult DistributionReview()
{
ViewData["FileDepositDate"] = DateTime.Now.ToShortDateString();
var view = View(ApplicationConstants.DistributionReviewViewName, new MegaLockbox.Web.ViewModels.DistributionByTypeViewModel(securityManager, distributionReviewDataAdapter, Convert.ToDateTime(ViewData["FileDepositDate"])));
return view;
}
public ActionResult DistributionByType(string id)
{
DateTime depositDate;
var view = new PartialViewResult();
if (DateTime.TryParse(id , out depositDate))
{
view = PartialView(ApplicationConstants.DistributionByTypeViewName, new MegaLockbox.Web.ViewModels.DistributionByTypeViewModel(securityManager, distributionReviewDataAdapter, depositDate));
}
return view;
}
public ActionResult DistributionByStatus(string id)
{
DateTime depositDate;
var view = new PartialViewResult();
if(DateTime.TryParse(id, out depositDate) )
{
view = PartialView(ApplicationConstants.DistributionByStatusViewName, new MegaLockbox.Web.ViewModels.DistributionByTypeViewModel(securityManager, distributionReviewDataAdapter, depositDate));
}
return view;
}
答案 0 :(得分:4)
这里你有很好的指南如何做到这一点:
http://ericdotnet.wordpress.com/2009/03/17/jquery-ui-tabs-and-aspnet-mvc/
如果您有任何疑问,请告诉我们:)
PS你可以下载这个例子,然后玩它
答案 1 :(得分:2)
标题标题的Html
<li><a onclick="LoadTabData('type')" href="/DistributionReview/DistributionByType">Distribution Type</a></li>
<li><a onclick="LoadTabData('status')" href="/DistributionReview/DistributionByStatus">Status</a></li>
Jquery函数
function LoadTabData(type){
if(type='type')
$.post("YourController/DistributionByType", { id: $("#fileDepositDate").val()},
function(data) {
$(#"yourByTypeTabDiv").html(data);
});
}else{
$.post("YourController/DistributionByStatus", { id: $("#fileDepositDate").val()},
function(data) {
$(#"yourByStatusTabDiv").html(data);
});
}
答案 2 :(得分:0)
这也行。
<div id="tabs">
<ul>
<li><a href="#tab-1">Tab 1</a></li>
<li><a href="#tab-2">Tab 2</a></li>
<li><a href="#tab-3">Tab 3</a></li>
</ul>
<div id="tab-1">
@Html.Partial("_PartialViewForTab1", Model)
</div>
<div id="tab-2">
@Html.Partial("_PartialViewForTab2", Model)
</div>
<div id="tab-3">
@Html.Partial("_PartialViewForTab3", Model)
</div>
</div>