简体   繁体   English

ASP.NET MVC-如何显示带有arraylist数据的部分视图

[英]ASP.NET MVC - How to show partial views with arraylist data

I want to display three different partial views on a aspx webpage based on the buttons selected. 我想基于所选按钮在aspx网页上显示三个不同的局部视图。 That part is working fine. 那部分工作正常。 But then each of the partial views would read separate sections from the xml file and would provide data the view as well. 但是随后,每个局部视图将从xml文件读取单独的部分,并向视图提供数据。 I have tried to pass the data as Arraylist to the view but the partial view does not show up now. 我试图将数据作为Arraylist传递给视图,但现在未显示部分视图。 Without passing the data, the partial views were working. 如果不传递数据,则局部视图有效。 Please note I am using aspx instead of razor. 请注意,我使用的是aspx而不是剃须刀。 Any ideas as to how to make this work so that upon clicking any of the 3 buttons, a different partial view is displayed with the xml data as well. 关于如何进行此工作的任何构想,以便在单击这三个按钮中的任何一个时,也会显示带有xml数据的不同局部视图。 Thanks in advance. 提前致谢。

RenderVOIP.aspx RenderVOIP.aspx

$(function() {
        $('#InfoButton').on("click", function() {        
            $.get('<%= Url.Action("InfoAction", "HardwareRequisition")%>', function (data) {
                $( "#myContentView" ).html( data );
            });
            $('#NotesButton').on("click", function() {              
                $.get('<%= Url.Action("NotesAction", "HardwareRequisition")%>', function (data) {
                    $( "#myContentView" ).html( data );
                });
                $('#OrdersButton').on("click", function() {                  
                    $.get('<%= Url.Action("OrdersAction", "HardwareRequisition")%>', function (data) {
                        $( "#myContentView" ).html( data );
                    });
                });
            });
        });
    });

<input type="text" id="box" style="width: 100px;" />
      <div class="row">
                    <div class="col-lg-12" id="account-subnavigation">
                        <div class="btn-group" style=" margin-bottom:10px; margin-left:10px;">                         
                            <button class="btn btn-info" style="width:120px" id="InfoButton">Info</button>
                            <button class="btn btn-info" style="width:120px" id="NotesButton">Notes</button>
                            <button class="btn btn-info" style="width:120px" id="ordersButton">Orders</button>
                        </div>
                    </div>
                </div>

               <div class="row" id="myContentView">

                </div>

voipSubform1.ascx voipSubform1.ascx

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Products>" %>

<h2>VoIP Subform 1</h2>
 test
<fieldset id="voipdetails" class="section2">

    <table class="table table-bordered"> 
<tr> 
<th>Id</th> 
<th>Product Name</th> 
<th>Product Cost</th> 
</tr> 
<% foreach (var product in ((IEnumerable<Products>)ViewData["data"]))

{ %> 
<tr> 
<td> 
    <%: product.ProductId%>
</td> 
<td> 
<%= product.ProductName%>
</td> 
<td> 
<%= product.ProductCost%>
</td> 
</tr> 
<% } %>
</table>
 
HardwareRequisitionController.cs

public ActionResult InfoAction()
            {
                //return View("VoIPSubform1", _repository.GetForm(8));
      //          return PartialView("_MySecondPartialView");
      //          return View("RenderVOIPForm", _repository.GetForm(8));

                var filename = AppDomain.CurrentDomain.BaseDirectory + "App_Data\\" + "log\\" + "logErrors.txt";
                try
                {
                    XMLReader readXML = new XMLReader();
                    var data = readXML.ReturnListOfProducts().ToList();

                }
                catch (Exception e)
                {
                    var sw = new System.IO.StreamWriter(filename, true);
                    sw.WriteLine(DateTime.Now.ToString() + " " + e.Message + " " + e.InnerException);
                    sw.Close();
                }
               // return View(data.ToList());
                XMLReader readXML2 = new XMLReader();
                var data2 = readXML2.ReturnListOfProducts();

                var sw2 = new System.IO.StreamWriter(filename, true);
                sw2.WriteLine(DateTime.Now.ToString() + " " + data2);
                sw2.Close();

                return PartialView("_VoIPSubform1", data2);

           //     return View("_VoIPSubform1", data.ToList());
            }  

If someone is interested in the solution, I added these lines inside the controller and it worked. 如果有人对解决方案感兴趣,我将这些行添加到控制器内,并且可以正常工作。

ViewData["data"] = data2;
return PartialView("_VoIPSubform1");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM