Отображение списка загруженных файлов - PullRequest
0 голосов
/ 21 мая 2018

У меня есть форма, где пользователи могут загружать файлы, а затем просматривать список своих загрузок.У меня две проблемы:

  • Список файлов не появляется при загрузке страницы.SQL-запрос действителен.
  • Когда пользователь загружает файл, возникает исключение NullReferenceException, поскольку модель списка файлов не загружается.Я не уверен, как передать эту модель в поле зрения после загрузки.Любой совет с благодарностью.

Контроллер для получения списка наборов данных ниже.Конечно, контроллер для загрузки наборов данных отличается, но он принимает HttpPostedFileBase и datasetName.Он возвращает только ViewBag.error / ViewBag.message.

public ActionResult upload(DatasetViewModel model)
        {
            List<DatasetDetail> model2 = new List<DatasetDetail>();
            var connectionstring = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
            using (SqlConnection con = new SqlConnection(connectionstring))
                try
                {
                    // Your code
                    con.Open();

                    using (SqlCommand cmd = new SqlCommand("", con))
                    {

                        cmd.CommandText = "SELECT datasetid, datasetname, timestamp FROM datasets WHERE userid = @userid";
                        cmd.Parameters.Add("@userid", SqlDbType.Text);
                        cmd.Parameters["@userid"].Value = System.Web.HttpContext.Current.User.Identity.GetUserId();


                        SqlDataReader reader = cmd.ExecuteReader();
                        while (reader.Read())
                        {

                            var u = new DatasetDetail();
                            u.datasetid = reader["datasetid"].ToString();
                            u.dataset = reader["datasetname"].ToString();
                           /* u.timestamp = Convert.ToDateTime(reader["TIMESTAMP"]);*/
                            model2.Add(u);
                        }
                    }
                }
                catch
                {
                    // Catch exception
                }
                finally
                {
                    // Close the connection
                    con.Close();
                }
            model.datasetlist = model2;
            return View(model);
        }

Просмотр:

    @model WebApplication12.Models.DatasetViewModel

    <div style="width: 320px;">
        <h2>Manage Datasets</h2>
<a href="~/Content/ExcelTemplate.xlsx">Download Excel Template</a>
        @using (Html.BeginForm("upload", "Dashboard", FormMethod.Post,
                                                  new { enctype = "multipart/form-data" }))

        {
            @Html.AntiForgeryToken()
            @Html.ValidationSummary()

            <div class="form-group">
                <label>Dataset Name:</label>
                <br />
                <input type="text" id="datasetname" name="datasetname" />
            </div>

                    <div class="form-group">
                        <input type="file" id="dataFile" name="upload" />
                    </div>

                    <div class="form-group">
                        <input type="submit" value="submit" class="btn btn-block" />
                    </div>
        }
    </div>
    <div id="response"></div>
    @if (ViewBag.Message != null)
    {
        <div class="alert alert-success" role="alert">@Html.Raw(ViewBag.Message)</div>
    }
    @if (ViewBag.Error != null)
    {
        <div class="alert alert-error" role="alert">@Html.Raw(ViewBag.Error)</div>
    }
    <div>
        @foreach (var u in Model.datasetlist)
        {
            <b>u.dataset</b>
        }
    </div>

Соответствующие модели:

public class DatasetViewModel
{
    public List<DatasetDetail> datasetlist { get; set; }
}

public class DatasetDetail
{
    public string datasetid { get; set; }
    public string dataset { get; set; }
   /* public DateTime timestamp { get; set; }*/
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...