【问题标题】:How to Load Partial Views with Jquery UI Tab by passing parameters?如何通过传递参数使用 Jquery UI 选项卡加载部分视图?
【发布时间】:2011-09-19 04:34:37
【问题描述】:

我有一个父页面 (DistributionReview.aspx),它有一个 存款日期 可供使用 DatePicker 选择。

在下面我有 两个标签(*DistributionByType* 和 DistributionByStatus),我想加载 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: &nbsp;     <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;
    }

【问题讨论】:

  • 控制器中可以有一个方法(动作)并传递两个参数,一个用于数据,一个用于类型('status'或'type')

标签: asp.net-mvc asp.net-mvc-2 asp.net-mvc-3 asp.net-ajax jquery-ui-tabs


【解决方案1】:

标签标题的 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】:

    这里有很好的指导如何做到这一点:

    http://ericdotnet.wordpress.com/2009/03/17/jquery-ui-tabs-and-aspnet-mvc/

    如果您有任何问题.. 告诉我们:)

    PS 你可以下载例子,然后玩一下

    【讨论】:

      【解决方案3】:

      这也行。

      <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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-20
        • 2019-10-05
        • 2013-10-21
        • 1970-01-01
        相关资源
        最近更新 更多