Estoy creando una aplicación web para la gestión de eventos usando .net mvc y jquery. Creé un controlador de aplicación web mvc llamado SeatPlansController y un modelo llamado SeatPlanes y puedo insertar los datos en la base de datos. Pero no puedo pasar los datos de jquery a la base de datos usando el controlador mvc.
El código de acción de mi controlador es el que se muestra a continuación
// OBTENER: Planos de asientos/Crear
Public ActionResult Crear ()
{
volver Ver();
}
// POST: Planos de asientos/Crear
// Para protegerse de los ataques de publicación excesiva, habilite las propiedades específicas a las que desea vincularse, por
// más detalles ver http://go.microsoft.com/fwlink/?LinkId=317598.
[Publicación HTTP]
[Validar token antifalsificación]
Public ActionResult Create(String seat_id, String seat_no)
{
identificación interna = 10;
SeatPlans S = new SeatPlans();
S.asiento_id = asiento_id;
S.asiento_no = asiento_no;
si (ModelState.IsValid)
{
db.SEATPLAN.Add(S);
db.GuardarCambios();
// devuelve RedirectToAction("Índice");
}
volver Vista(S);
}
En la creación posterior, el ID del controlador es la clave principal, por lo que quiero pasar seat_id , seat_no como argumento y debería actualizar la base de datos.
Usé el siguiente javascript
function getPerson(id) { $.ajax({ type: "GET", url: '@Url.Action("create", "SeatPlanesController")', contentType: "application/json; charset=utf-8", data: {eat_id :6, seat_no:8}, dataType: "json", success: function (result) { alert(result); //window.locationre = result.url; } }); }Puedo ejecutar el método create get usando
http://localhost:52348/SeatPlans/Createpero ¿cómo puedo ejecutar el método de publicación directamente desde el navegador con un argumento como
http://localhost:52348/SeatPlans/Create/2/3t/eCambié la secuencia de comandos como se muestra a continuación, funciona para el método GET, pero si hice TYPE: "publicar", aparece un cuadro de alerta emergente con la alerta "localhost: 52348 dice: error interno del servidor"
$(documento).listo(función () {
$("botón").click(función () {
$.ajax({
tipo: "POST",
contentType: "aplicación/json; charset=utf-8",
url: '@Url.Action("Crear", "SeatPlans", new { Area = "" })',
datos: { seat_id: "34", seat_no: "98" },
tipo de datos: "json",
asíncrono: falso,
éxito: función (resultado) {
$("#div1").html(resultado);
},
error: función (abc) {
alerta(abc.statusText);
},
});
});
});
Finalmente obtuve la solución. Cambié el script como se muestra a continuación.
//jQuery.noConflict();
// var $j = jQuery.noConflict();
función clickevent()
{
var forma = $("#frm");
var token = $('input[name="__RequestVerificationToken"]', formulario).val();
$.ajax({
tipo: "publicación",
// encabezados: { "__RequestVerificationToken": token },
url: '@Url.Action("Crear", "Planes de asientos")',
datos: {
seat_id: "34", seat_no: "98"
},
éxito: función (resultado) {
$("#div1").html(resultado);
}
});
}
y cambie el método de creación de publicación como se muestra a continuación
<pre> public ActionResult Create(String seat_id, String seat_no) { int id = 10; SeatPlans S = new SeatPlans(); S.seat_id = seat_id; S.seat_no = seat_no; if (ModelState.IsValid) { db.SEATPLAN.Add(S); db.SaveChanges(); // return RedirectToAction("Index"); } return View(S); }