Wie kann ich RDLC-Berichte mit dem ReportViewer-Steuerelement in ASP.Net MVC verwenden?

Ich bin ziemlich neu in ASP.Net MVC. Ich muss einen RDLC-basierten Bericht in MVC anzeigen.

rundsätzlich ist meine Anforderung sowie das, was ich getan habe: -

Ich habe einen ReportController, der APIController erbt. Diese Methode gibt ein DataSet zurück. Dieses DataSet wird an die RDLC-Datei gesendet.

us diesem Grund habe ich Folgendes ausgeführt, konnte den Bericht jedoch nicht erstellen.

Ich habe eine Modellklasse mit dem Namen ReportParameter wie folgt erstellt:

public class ReportParameter 
{
    public DateTime DateFrom { get; set; }
    public DateTime DateTo { get; set; }
}

Ich habe den folgenden Controller ReportViewController:

public class ReportViewController : Controller
{
    static readonly ReportController ctrl = new ReportController();

    public ActionResult GenerateReport()
    {
        return View();
    }

    [HttpPost]
    public ActionResult GenerateReport(ReportParameterSalesOrder param)
    {
        if (ModelState.IsValid)
        {
            Helpers.DataLayer dl = new Helpers.DataLayer();
            if (param.DateFrom != null)
            {
                DateTime DateFrom = Convert.ToDateTime(param.DateFrom);
                DateTime DateTo = Convert.ToDateTime(param.DateTo);

                string fdate = DateFrom.ToString("yyyy/MM/dd");
                string tdate = DateTo.ToString("yyyy/MM/dd");

                Session["ReportSales"] = ctrl.ReportSales(param);
            }

            return Redirect(Url.Action("ViewReport", "ReportView"));
        }
        return View();
    }
    public ActionResult ViewReport()
    {
         return View();
    }

}

Ich habe einen API-Controller ReportController, dessen Objekt im obigen ReportViewerController erstellt wurde, um ein DataSet zu generieren und den RDLC-Bericht auszufüllen. Der API-Controller lautet:

public class ReportController : ApiController
{

    static readonly IReportRepository repository = new ReportRepository();

    [ActionName("ReportSales")]
    public DataSet ReportSales(ReportParameterSalesOrder paramSO)
    {
        DataSet item = repository.ReportSales(paramSO);
        if (item == null)
        {
            throw new HttpResponseException(HttpStatusCode.NotFound);
        }
        return item;
    }
}

Ich habe zwei Ansichten GenerateReport.aspx und ViewReport.aspx. Die GenerateReport.aspx ist unten angegeben:

<table style="width: 40%;">
              <tr>
                  <td class="style1">
                      <h3>
                          <asp:Label ID="Label1" runat="server" Text="From Date"></asp:Label></h3>
                  </td>
                  <td>
                      <%[email protected](a=> a.DateFrom, new{id="startDate",style="width:250px;"}) %>
                      <%[email protected](a => a.DateFrom)%>
                  </td>
              </tr>
              <tr>
                  <td class="style1">
                      <h3>
                          <asp:Label ID="Label2" runat="server" Text="To Date"></asp:Label></h3>
                  </td>
                  <td>
                      <%[email protected](a => a.DateTo, new { id = "ToDate", style = "width: 250px;" })%>
                      <%[email protected](a => a.DateTo)%>
                  </td>
              </tr>
              <tr>
                  <td class="style1">
                      &nbsp;
                  </td>
                  <td>
                      &nbsp;
                  </td>
              </tr>
              <tr>
                  <td class="style1">
                      &nbsp;
                  </td>
                  <td>
                      <input id="btnsearch" class="button" type="submit" value="Show" />
                  </td>
              </tr>
          </table>

Die ViewReport.aspx ist unten angegeben:

 <center style="width: 974px">
      <iframe id="myReport" width="100%" height="450px" src="ReportViewer.aspx">

        </iframe></center>

Ich habe eine Dataset.xsd, eine rdlc-Datei und eine aspx-Seite hinzugefügt, um die rdlc-Datei hinzuzufügen.

Aber ich kann es nicht zum Laufen bringen. Wie zeige ich den Bericht an oder wie fülle ich den Datensatz, den ich vom Controller erhalte, mit dem Bericht auf?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage