【发布时间】:2019-02-28 14:04:59
【问题描述】:
在 Razor ASP 中,我试图在数据库对象注册后立即获取它的 ID。这是 Json。
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() 之前调用它。返回空...
这里是控制器
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"/>
我真的对这个问题感到困惑......
【问题讨论】:
-
试试 public JsonResult GetHabitos()
-
如果你想返回客户端 JS 响应的 POST 结果,为什么要使用
return View();? -
您为什么要使用
$.getJSON调用返回不是 JSON 的视图的POST操作? -
alert("se realizó un registro con exito");是否在 else 块中触发? -
@MasoudKeshavarz 既然你提到了它。它不会触发。可能与问题有关?
标签: c# json asp.net-mvc model-view-controller