Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 显示上载文件的列表_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 显示上载文件的列表

Asp.net mvc 显示上载文件的列表,asp.net-mvc,Asp.net Mvc,我有一个表单,用户可以上传文件,然后查看他们上传的列表。我遇到了两个问题: 页面加载时未显示文件列表。SQL查询是有效的。 当用户上载文件时,会出现NullReferenceException,因为没有加载文件列表模型。我不确定上传后如何将此模型传递到视图中。非常感谢您的建议。 用于获取数据集列表的控制器如下所示。当然,用于上载数据集的控制器是不同的,但它接受HttpPostedFileBase和datasetName。它只返回ViewBag.error/ViewBag.message publ

我有一个表单,用户可以上传文件,然后查看他们上传的列表。我遇到了两个问题:

页面加载时未显示文件列表。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);
        }
视图:

相关型号:

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; }*/
}

成功上载后,不要返回相同的视图。重定向到另一个GET操作,在那里它将读取数据并显示。@Shyju我应该注意,现在上传操作在iFrame中。因此RedirectToAction将在该iFrame中加载整个页面。
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; }*/
}