我想使用JSON和WebApi列出列表框中的五条最新消息。 不知何故,它没有在列表框中显示任何数据
JQuery方法:
<script>
function get_latest_messages(Namn) {
// Handle your incomming data from the api
function handleJson (messages) {
// the data parameter is supposed to be your json
for (var i = 0; i < messages.length; i++) {
$("#MessList").append(data[i].UIdFrom);
$("#MessList").append(data[i].Text);
}
}
// Call
$.getJSON('http://localhost:51486/api/message/get?username=' + Namn, handleJson);
}
</script>
消息列表框显示在:
<div runat="server" id="SenastDiv">
<asp:Label ID="Text" runat="server" Text="Dina fem senaste meddelanden"></asp:Label>
<asp:ListBox ID="MessList" runat="server" Width="250 px"></asp:ListBox>
</div>
api控制器:
命名空间MvcApplication1.Controllers
public class MessageController : Controller
{
DALLager d = new DALLager();
public IEnumerable<GetFiveLatest> Get(string username)
{
IEnumerable<GetFiveLatest> messages = d.getFiveLatest(username);
return messages;
}
}
数据层中的方法:
public List<GetFiveLatest> getFiveLatest(string userName)
{
try
{
SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["InstabandDBEntities"].ConnectionString);
conn.Open();
Meddelande mess = new Meddelande();
List<GetFiveLatest> lista = new List<GetFiveLatest>();
SqlCommand cmd = new SqlCommand("SELECT TOP 5 UIdFrom, Text FROM Message WHERE UIdTo='" + userName + "'ORDER BY Text DESC", conn);
SqlDataReader dataReader = cmd.ExecuteReader();
while (dataReader.Read())
{
GetFiveLatest message = new GetFiveLatest();
message.Text = (dataReader["Text"].ToString());
message.UIdFrom = (dataReader["UIdFrom"].ToString());
lista.Add(message);
}
conn.Close();
return lista;
}
catch (Exception ex)
{
throw new Exception(exe = "Följande fel inträffade: " + ex.Message.ToString());
}
}
答案 0 :(得分:0)
您正在使用MVC Controller
。您应该使用ApiController
。