2010-11-01 7 views
0

Когда я просматриваю свой ответ, у меня есть данные 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, который выглядит correct //////////////////////////////

< html> balhhhh, который мне не нужен для моего ответа как он должен быть источником данных JSON. </html>

ответ

3

Try вызова

Response.End(); 

после Response.Write(). Это не позволит остальной части ASP.NET добавлять HTML со страницы.

В качестве альтернативы, если вы никогда не хотите отображать фактическую страницу, вам, вероятно, следует рассмотреть возможность написания ASP.NET-обработчика (.ashx) вместо страницы (.aspx).

2

Это потому, что вы оказываете свой json внутри объекта страницы, вместо этого попробуйте сделать это в Http Handler.

0

Я считаю, что вы не удалили макетную разметку в своем aspx-файле. просто удалите и повторите попытку. Все будет хорошо.

Смежные вопросы