C# getJson未正确触发控制器ActionResult
在RazorASP中,我试图在数据库对象注册后立即获取其Id。这里是JsonC# getJson未正确触发控制器ActionResult,c#,json,asp.net-mvc,model-view-controller,C#,Json,Asp.net Mvc,Model View Controller,在RazorASP中,我试图在数据库对象注册后立即获取其Id。这里是Json function Registrar() { var obj = { alcohol: $("#alcoholId").val(), tabaco: $("#tabacoId").val(), otros: $("#otrosId").val()}; //alert($("#codigo").val()); $.getJSON("/AntecedentesMvc/Registrar", obj,
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();
});
}
register()工作正常,它注册对象。如果成功(否则),它应该调用另一个函数GetHabitoID()。
它永远不会进入控制器。但是如果我像这样编辑函数register()
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。问题是它在registrator()完成它的工作之前调用它。正在返回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"/>
我真的对这个问题感到困惑…在这方面有一些不好的做法,但为了让它按预期工作,我做了以下几点
function GetHabitoId() {
$.getJSON("/AntecedentesMvc/GetHabitos", function (o) {
$("#Hid").val(o);
});
}
问题是val()没有获取任何参数 尝试public JsonResult GetHabitos()为什么使用
returnview()
如果要返回客户端JS响应的POST结果?为什么要使用$.getJSON
调用返回非JSON视图的POST
操作?警报(“se realizóun registro con exito”)代码>在else块中触发?@MasoudKeshavarz,既然你提到了它。它不会触发。这可能与这个问题有关吗?