首页 > 解决方案 > 视图不显示特定类型

问题描述

我正在使用 asp.net 创建一个网站。我能够获取数据并将其存储在 TempData 中,但是当我在视图中显示它时,它的 id 和主题显示为空白。

我已经在调试中检查了数据库中的数据是否正确,并且它也存储在 tempdata 中。问题是主题和 id 没有显示在视图中。

id 是 PK 和 int 并且 email_subject 是 null 是否会导致问题,因为我能够显示其他列。

如果是,你能告诉我为什么吗?

我认为代码是..

<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>




    @{


        Html.BeginForm();


        @Html.Label("Email_Subject", "Email_Subject :   ")
        <h3> @TempData["email_subject"]</h3>
        <br />
        
        @Html.Label("Body", "Body :   ")
        <h3> @TempData["body"] </h3>
        <br />

        @Html.Label("Predicted", "Predicted :  ")
        <h3> @TempData["intent"]</h3>
        <br />

        <input type="Submit" name="Correctornot" value="Correct" />
        <input type="Submit" name="Correctornot" value="Not Correct" />
        <br />

        Html.EndForm();


    }

我的控制器中的代码是...

[HttpGet]
        public ActionResult Index()

        {

            string connstr = connection string ;
            SqlConnection conn = new SqlConnection(connstr);
            conn.Open();

            SqlCommand cmd = new SqlCommand(" Select top(1) Id , Body , Email_subject , Queue , Intent , Tagging FROM [dbo].[Labeler_Email_for_Confirmation]      ");

            cmd.CommandType = System.Data.CommandType.Text;
            cmd.Connection = conn;



            SqlDataReader reader = cmd.ExecuteReader();

            while (reader.Read())

            {
                
                var Did = reader["Id"].ToString();
                TempData["id "] = Int64.Parse(Did);

                TempData["email_subject "] = reader["Email_subject"].ToString();
                TempData["body"] = reader["Body"].ToString();
                TempData["intent"] = reader["Intent"].ToString();

                TempData["queue"] = reader["Queue"].ToString();
                TempData["tagging"] = reader["Tagging"].ToString();


            }


            conn.Close();




            TempData.Keep();

            return View();

        }

在此处输入图像描述

标签: c#asp.netsql-servertempdata

解决方案


    @{

     var Email_Subject = "";  
         var body = "";  
     var intent = "";
    if (TempData.ContainsKey("Email_Subject"))  
        {  
        Email_Subject = TempData["Email_Subject"] as string;  
        }
    if (TempData.ContainsKey("body"))  
        {  
        body = TempData["body"] as string;  
        }    
    if (TempData.ContainsKey("intent"))  
        {  
        intent = TempData["intent"] as string;  
        }    
        Html.BeginForm();


       
        <h3> @Email_Subject</h3>
        <br />
        
     
        <h3> @body </h3>
        <br />

       
        <h3> @intent</h3>
        <br />

        <input type="Submit" name="Correctornot" value="Correct" />
        <input type="Submit" name="Correctornot" value="Not Correct" />
        <br />

        Html.EndForm();


    }


推荐阅读