1

こんにちは、グリッドという名前のビュー ページと履歴という名前の部分ビューがあります。グリッド ページに部分ビューを表示したいのですが、ページにビューがありますが、履歴ページにはデータが入力されていません。

   this is my GridsPage

      <%       
                   var grid = new WebGrid(source: Model, defaultSort: "ResourceName", rowsPerPage: 3);
                     using (Html.BeginForm())
                     { %>  

                         <%: Html.DropDownList("ResourceName", (SelectList)ViewBag.ResourceName, "--Select Project--")%>
                          <%: Html.ValidationMessage("ResourceName")%>  

                           <%: Html.DropDownList("ResourceID", (SelectList)ViewBag.ResourceID, "--Select Project--")%>
                           <%: Html.ValidationMessage("ResourceID")%> 

                           <%: Html.DropDownList("status", (SelectList)ViewBag.status, "--Select Project--")%>                               
                                <form action="Grids.aspx" method="post">
                                <p>
                                 <input type="submit" value="search" />
                               </p> 
                               </form>                          
                        <div id="grid">
                        <%:grid.GetHtml(
                         tableStyle: "listing-border", headerStyle: "gridhead", footerStyle: "paging", rowStyle: "td-dark", alternatingRowStyle: "td-light",                            
                         columns:grid.Columns(                             
                        grid.Column("ResourceID","Resource ID"),
                        grid.Column("ResourceName","Resource Name"),
                        grid.Column("EmployeEmailID","Employee ID"),
                        grid.Column("status","Status"),
                        grid.Column(
                        header: "",
                        style: "text-align-center",
                        format: (item) => Html.ActionLink("Edit", "Edit", new { ResourceID = item.ResourceID }))
                        ))%>
                        </div>
                        <%} %>

               //Rendering the Partial view here
                        <%:Html.Partial("History") %>

これは私の部分的なビューです

       <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<Gridview_BugTracker.Models.BugTracker_DataHelper>>" %>                 
               <% foreach (var item in Model)
                  { %>                        
                     <div>
                      <%:Html.LabelForModel(item.EmployeName)%>
                     </div>                        
                     <div>
                     <%:Html.LabelForModel(item.Resolution)%>
                     </div>

これは部分ビュー用のコントローラーです

    [AcceptVerbs(HttpVerbs.Get)]
    public ActionResult History()
    {
        var getbugs = GetBugs();
        return View(getbugs);
    }

アクションメソッドの履歴には行きません..誰かが私を修正できますか?私はどこで間違っていますか?

4

2 に答える 2

0

Html.Partial はコントローラーを呼び出しません。呼び出しでモデルを指定する必要があります。

<%: Html.Partial("History", GetBugs()) %>

もう 1 つのオプションは RenderAction で、これはコントローラーを呼び出し、実際にはランタイム全体 (ルートなど) を呼び出します。

<%: Html.RenderAction("History", "ControllerName"); %>
于 2012-07-31T12:25:37.683 に答える
0

あなたのコントローラーで

[ChildActionOnly]
public ActionResult History()
{
    var getbugs = GetBugs();        
    return PartialView(getbugs);
}

そしてあなたのaspxページでこの変更を試してください

       <%:Html.Action("History") %>

コードでこの変更を試してください

于 2012-08-01T05:25:16.300 に答える