在Razor ASP中,我正在尝试获取注册后的数据库对象的ID。这是杰森。
function Registrar() {
var obj = { alcohol: $("#alcoholId").val(), tabaco: $("#tabacoId").val(), otros: $("#otrosId").val()};
//alert($("#codigo").val());
$.getJSON("/AntecedentesMvc/Registrar", obj, function (e) {
if (e != "") {
alert(e);
}
else {
alert("se realizó un registro con exito");
GetHabitoId();
}
});
}
function GetHabitoId() {
$.getJSON("/AntecedentesMvc/GetHabitos", function (o) {
$("#Hid").val();
});
}
Registrar()工作正常,它注册了对象。一旦成功(否则),它应调用另一个函数GetHabitoID()。 它永远不会传递给控制器。但是如果我这样编辑函数Registrar()
function Registrar() {
var obj = { alcohol: $("#alcoholId").val(), tabaco: $("#tabacoId").val(), otros: $("#otrosId").val()};
//alert($("#codigo").val());
$.getJSON("/AntecedentesMvc/Registrar", obj, function (e) {
if (e != "") {
alert(e);
}
else {
alert("se realizó un registro con exito");
}
GetHabitoId();
});
}
function GetHabitoId() {
$.getJSON("/AntecedentesMvc/GetHabitos", function (o) {
$("#Hid").val();
});
}
GetHabitoId()确实调用了ActionResult。问题在于它在Registrar()完成之前就调用了它。返回null ...
这里是控制器
Habitos objHabito=new Habitos();
[HttpPost]
public ActionResult Registrar(int alcohol, int tabaco, string otros)
{
objHabito.Alcohol = alcohol;
objHabito.Tabaco = tabaco;
objHabito.Otros = otros;
db.Habitos.Add(objHabito);
db.SaveChanges();
return View();
}
[HttpGet]
public ActionResult GetHabitos ()
{
var Habitoid = objHabito.Id_Habitos;
return Json(Habitoid,JsonRequestBehavior.AllowGet);
}
,如果您需要查看调用该函数的按钮
<input type="button" name="RegistrarH" value="Registrar" class="btn btn-default"onclick="Registrar();" data-dismiss="modal"/>
我真的很困惑这个问题...
答案 0 :(得分:0)
这有一些不好的做法,但是为了使它按预期工作,我做了以下工作。
function GetHabitoId() {
$.getJSON("/AntecedentesMvc/GetHabitos", function (o) {
$("#Hid").val(o);
});
}
问题是val()没有参数!