Asp.net 如何在MVC中将数据集从控制器传递到视图

Asp.net 如何在MVC中将数据集从控制器传递到视图,asp.net,asp.net-mvc,popup,devexpress,Asp.net,Asp.net Mvc,Popup,Devexpress,实际上,我的设想是: 将数据从excel导入数据库。 在这里,我通过viewbag将数据集从控制器传递到视图。 现在我需要在弹出窗口中将该数据集绑定到gridview。 在我看来,一个按钮是存在的,点击按钮,弹出窗口将出现。 但当我从一个控制器返回到另一个视图时,它显示的是按钮,而不是弹出窗口 我认为: <asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server"> <h2>Im

实际上,我的设想是: 将数据从excel导入数据库。 在这里,我通过viewbag将数据集从控制器传递到视图。 现在我需要在弹出窗口中将该数据集绑定到gridview。 在我看来,一个按钮是存在的,点击按钮,弹出窗口将出现。 但当我从一个控制器返回到另一个视图时,它显示的是按钮,而不是弹出窗口

我认为:

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">

<h2>ImportExcel</h2>


<div align="center">
    <% Html.DevExpress().Button(

settings =>
{
    settings.Name = "btn_Import";
    settings.Text = "Import Excel Sheet";
    settings.UseSubmitBehavior = true;
}).Render();  %>
</div>


<%: Html.DevExpress().PopupControl(
settings =>
{
    settings.Name = "pcModalMode";
    settings.Width = 400;
    settings.AllowDragging = true;
    settings.CloseAction = CloseAction.CloseButton;
    settings.PopupElementID = "btn_Import";
    settings.PopupAnimationType = AnimationType.None;
    settings.HeaderText = "Upload Email Addresses (XLS/XLSX)";
    settings.Modal = true;
    settings.PopupHorizontalAlign = PopupHorizontalAlign.WindowCenter;
    settings.PopupVerticalAlign = PopupVerticalAlign.WindowCenter;
    settings.SetContent(() =>
    {
        using (Html.BeginForm("ImportExcel", "PopUp", FormMethod.Post, new { enctype = "multipart/form-data" }))
        {
            Html.Hidden("ID");
            ViewContext.Writer.Write("<div class=\"line\">");


            Html.DevExpress().Label(
                labelSettings => {
                    labelSettings.Text = "Choose Your File:";
                }
            )
            .Render();



            Html.DevExpress().UploadControl(Usettings =>
                {
                    Usettings.Name = "ImportData";
                    Usettings.CallbackRouteValues = new { Controller = "PopUp", Action = "Upload" };
                    Usettings.Width = Unit.Pixel(380);
                    Usettings.NullText = "Click here to browse files...";
                    Usettings.ShowProgressPanel = true;   

                }).Render();



            ViewContext.Writer.Write( "</div><div class=\"line\">");



            Html.DevExpress().Button(
                buttonSettings => {
                    buttonSettings.Name = "btnUpload";



                    //buttonSettings.ControlStyle.CssClass = "button";
                    //buttonSettings.Width = 80;
                    buttonSettings.Text = "Upload";
                    buttonSettings.UseSubmitBehavior = true;
                }
            )
            .Render();

            Html.DevExpress().Button(
                buttonSettings => {
                    buttonSettings.Name = "btnCancel";
                    //buttonSettings.ControlStyle.CssClass = "button";
                    buttonSettings.Width = 80;
                    buttonSettings.Text = "Cancel";
                    buttonSettings.ClientSideEvents.Click = "function(s, e){ pcModalMode.Hide(); }";
                }
            )
            .Render();
          ViewContext.Writer.Write("</div><b class=\"Clear\"></b>");



        DataSet ds = (DataSet)ViewBag.imp;




        }
    });

    settings.ClientSideEvents.CloseUp = "function(s, e){ ASPxClientEdit.ClearEditorsInContainer(null, '', true); }";
}).GetHtml()
%>

您能提供您的代码吗?devexpress是一个第三方付费/商业图书馆。顺便说一句,代码实际上不是MVC架构中的“视图”。只是一个与MVC控制器一起工作的经典asp.net Web表单。为什么不直接与DX联系呢?
 [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult ImportExcel(FormCollection form)
    {
        UploadedFile[] files = UploadControlExtension.GetUploadedFiles("ImportData");

        StringBuilder strValidations = new StringBuilder(string.Empty);
        try
        {
            if (files[0].ContentLength > 0)
            {
                string filePath = Path.Combine(HttpContext.Server.MapPath("../Uploads"),
                Path.GetFileName(files[0].FileName));
                files[0].SaveAs(filePath);
                DataSet ds = new DataSet();

                string ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath("../Uploads/") + files[0].FileName + ";Extended Properties=Excel 12.0";

                using (OleDbConnection conn = new OleDbConnection(ConnectionString))
                {
                    conn.Open();
                    using (DataTable dtExcelSchema = conn.GetSchema("Tables"))
                    {
                        string sheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
                        string query = "SELECT * FROM [" + sheetName + "]";
                        OleDbDataAdapter adapter = new OleDbDataAdapter(query, conn);

                        adapter.Fill(ds1, "Items");





                        ViewData["Mydataset"] = ds1;

                        ViewBag.imp = ds1;

                        ViewBag.text = "FIrst";
















                    }
                }
            }


        }
        catch (Exception ex)
        {
            ex.Message.ToString();
        }

        return View();

    }