【问题标题】:view doesn't display specific type视图不显示特定类型
【发布时间】:2020-07-15 15:36:54
【问题描述】:

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

我在调试中检查了数据库中的数据是否正确,并且它也存储在临时数据中。问题是主题和 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();

        }

【问题讨论】:

  • 请查看minimal reproducible example 发布代码指南。如果不查看您实际渲染的内容以及实际数据是什么,就无法知道为什么某些内容不会渲染。确保在edit 问题时内联代码示例中的所有必要数据。
  • 我已经用渲染中使用的所需代码的 sn-ps 编辑了这个问题。

标签: c# asp.net sql-server tempdata


【解决方案1】:

这是一个完全不同的问题。实际上,在定义 TempData 时,我错误地在 id 和 email_subject 名称之后添加了一个空格。在尝试展示时,我没有空间。所以基本上我试图得到一个与我创建的完全不同的 Tempdata,所以它显示为空白。

【讨论】:

    【解决方案2】:

        @{
    
         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();
    
    
        }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-05
      • 2019-02-20
      • 2017-02-03
      • 1970-01-01
      • 2020-11-08
      • 1970-01-01
      • 2010-12-27
      相关资源
      最近更新 更多