Estoy tratando de aprender asp.net. Estoy creando un sitio web de demostración en el que habría un panel de administración. El administrador actualizaría los mensajes diarios que se reflejarán en la página de inicio principal. Estoy usando MVC. He creado la tabla en la base de datos como
create table DailyMsg(Sno int primary key, msg varchar(max));este es mi controlador
public class DailyMsgsController : Controller { private amenEntities db = new amenEntities(); // GET: DailyMsgs public ActionResult Index() { return Json(db.DailyMsgs.ToList(),JsonRequestBehavior.AllowGet); } }Al ejecutar la siguiente URL, puedo ver correctamente los datos en formato JSON.
https://localhost:44329/DailyMsgs [{"Sno":1,"msg":"Hi!"}]Ahora, estoy atascado. Sé que tendría que agregar otra clase para la capa de acceso a datos, pero no sé cómo debo analizar estos datos e imprimirlos en la página HTML principal.
A partir de mi investigación en Internet, descubrí que podría tener que usar JQuery. Entonces, escribí lo siguiente (con lo que pude entender de Internet ya que no estoy familiarizado con JQuery):
$.ajax({ url: "/DailyMsgs/Index", type: "GET", success: function (data) { $("#div1").html(data); } });Esto, por supuesto, no funciona y no puedo ver nada en mi página web.
Mi página de inicio.html
<body> <div id="div1"><h2>Let jQuery AJAX Change This Text</h2></div> </body> </html> <script src="../Scripts/jquery-1.8.0.min.js"></script> <script src="../Scripts/bootstrap.min.js"></script> <link href="../Content/bootstrap.css" rel="stylesheet" /> <script src="../JQuery/DailyMsgsJQ.js"></script> Todo lo que quiero es leer y analizar el mensaje de msg y mostrarlo en la página web.
¿Podría orientarme sobre cómo debo proceder o hay alguna otra forma de lograr el propósito? ¡Muchas gracias!
Prueba esto
$.ajax({ url: "/DailyMsgs/Index", type: "GET", success: function (data) { $.each(data, function (index, element) { $("#div1").append(element.msg); }); } });Si aún tiene un error, obtenga console.log (datos); y envía por mí.
Sus etiquetas <script> están fuera de su etiqueta <html> . Eso significa que los scripts probablemente ni siquiera se ejecutan o no se cargan en el orden correcto. Desea que jQuery y Bootstrap se carguen primero, así que póngalos en <head> . Coloque su secuencia de comandos personalizada justo antes del cierre </body> , para que se cargue en último lugar.