C#试图创建JSON响应,但得到它的HTML

C#试图创建JSON响应,但得到它的HTML

问题描述:

当我查看我的回应我有我的JSON数据,但在底部我已经得到了页面的HTML?我试图创建一个JSON响应任何显而易见的地方。我所做的只是创建一个空白的.aspx页面。C#试图创建JSON响应,但得到它的HTML

 protected void Page_Load(object sender, EventArgs e){ Database db = DatabaseFactory.CreateDatabase(); 
     DbCommand cmd = db.GetStoredProcCommand("sp_GET_FEED"); 
     db.AddInParameter(cmd, "@FEED_TYPE_ID", DbType.Int32, 1); 

     List<NewsItem> _NewsItems = new List<NewsItem>() ; 

     using (IDataReader r = db.ExecuteReader(cmd)) 
     { 
      while (r.Read()) 
      { 
       NewsItem i = new NewsItem(); 
       i.id = r["FEED_ID"].ToString(); 
       i.title = r["TITLE"].ToString(); 
       i.fulltext = r["BODY"].ToString(); 
       i.image = r["IMAGE_URL"].ToString(); 
       i.created = r["DATE_CREATED"].ToString(); 
       i.url = r["URL"].ToString(); 
       _NewsItems.Add(i); 
      } 
     } 

     string json = JsonConvert.SerializeObject(_NewsItems); 
     //Response.Clear(); 
     Response.AddHeader("Content-type", "text/json"); 
     Response.AddHeader("Content-type", "application/json"); 
     Response.ContentType = "application/json"; 
     Response.Write(json);} 

所以我resposne是

/////////////////////////////// JSON输出看起来正确//////////////////////////////

< html> balhhhh我不需要我的回应作为它应该是JSON数据的提要。 </HTML>

尝试调用

Response.End(); 

Response.Write()后。这将阻止ASP.NET的其余部分从该页面添加HTML。

或者,如果您从不想渲染实际页面,则应该首先考虑编写ASP.NET处理程序(.ashx)而不是页面(.aspx)。

这是因为你正在渲染你的json在一个页面对象中,所以试着用Http Handler来代替它。

我相信你没有删除你的aspx文件中的虚拟标记。只需删除并重试。一切都会安好的。