Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将int与int模型json和MVC4进行比较_Javascript_Jquery_Json_Asp.net Mvc - Fatal编程技术网

Javascript 如何将int与int模型json和MVC4进行比较

Javascript 如何将int与int模型json和MVC4进行比较,javascript,jquery,json,asp.net-mvc,Javascript,Jquery,Json,Asp.net Mvc,我尝试将参数接收的int变量与DB中的int字段进行比较 控制器中的功能: [AcceptVerbs(HttpVerbs.Get)] public JsonResult getServicoID(string serie, int numDoc) { try { var result = db.Servicos.Where(dados => dados.DadosComerciais.Serie == serie &a

我尝试将参数接收的int变量与DB中的int字段进行比较

控制器中的功能:

[AcceptVerbs(HttpVerbs.Get)]
    public JsonResult getServicoID(string serie, int numDoc)
    {
        try
        {
            var result = db.Servicos.Where(dados => dados.DadosComerciais.Serie == serie && dados.DadosComerciais.NumDoc == numDoc); // i think the problem is here - dados.DadosComerciais.NumDoc == numDoc
            return Json(result, JsonRequestBehavior.AllowGet);
        }
        catch (Exception ex)
        {
            return Json(new { Result = "ERROR", Message = ex.Message }, JsonRequestBehavior.AllowGet);
        }
    }
[AcceptVerbs(HttpVerbs.Get)]
    public JsonResult getServicoID(string serie, int numDoc)
    {
        try
        {
            var result = db.Servicos.FirstOrDefault(dados => dados.DadosComerciais.Serie == serie && dados.DadosComerciais.NumDoc == numDoc);

            return Json(result.ServicosID, JsonRequestBehavior.AllowGet);
        }
        catch (Exception ex)
        {
            return Json(new { Result = "ERROR", Message = ex.Message }, JsonRequestBehavior.AllowGet);
        }
    }
功能js:

function AddServContratado() {
//Buscar ServicoID da tabela servicos para guardar na ServicoContratado

$.getJSON("/Contrato/getServicoID", { serie: $("#Serie").val(), numDoc: $("#NumDoc").val() },
      function (result) {
          var servicoID = result.ServicosID;
          alert(result.ServicosID);
      });

您正在从控制器操作返回列表。
result
变量是一个
IEnumerable

在javascript文件中,您试图使用一些
result.ServicosID
属性,这些属性无法工作,因为您有一个对象列表。例如,您可以这样访问它们:
result[0].ServicosID

如果要访问单个对象,请确保已从控制器操作返回单个对象:

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult GetServicoID(string serie, int numDoc)
{
    try
    {
        var result = db.Servicos.FirstOrDefault(dados => dados.DadosComerciais.Serie == serie && dados.DadosComerciais.NumDoc == numDoc);
        if (result == null)
        {
            // no object found in the database that matches the criteria => 404
            return HttpNotFound();
        }
        return Json(result, JsonRequestBehavior.AllowGet);
    }
    catch (Exception ex)
    {
        Response.StatusCode = 500;
        return Json(new { Result = "ERROR", Message = ex.Message }, JsonRequestBehavior.AllowGet);
    }
}
我找到了解决办法:

控制器:

[AcceptVerbs(HttpVerbs.Get)]
    public JsonResult getServicoID(string serie, int numDoc)
    {
        try
        {
            var result = db.Servicos.Where(dados => dados.DadosComerciais.Serie == serie && dados.DadosComerciais.NumDoc == numDoc); // i think the problem is here - dados.DadosComerciais.NumDoc == numDoc
            return Json(result, JsonRequestBehavior.AllowGet);
        }
        catch (Exception ex)
        {
            return Json(new { Result = "ERROR", Message = ex.Message }, JsonRequestBehavior.AllowGet);
        }
    }
[AcceptVerbs(HttpVerbs.Get)]
    public JsonResult getServicoID(string serie, int numDoc)
    {
        try
        {
            var result = db.Servicos.FirstOrDefault(dados => dados.DadosComerciais.Serie == serie && dados.DadosComerciais.NumDoc == numDoc);

            return Json(result.ServicosID, JsonRequestBehavior.AllowGet);
        }
        catch (Exception ex)
        {
            return Json(new { Result = "ERROR", Message = ex.Message }, JsonRequestBehavior.AllowGet);
        }
    }
Js:


错误的上下文是什么?我尝试返回单个对象。此字段是DadosComerciais中的主键和Servicos中的外键,将只返回单个对象结果,然后按照Darin的建议执行,或者简单地将.FirstOrDefault()添加到linq中。Where()将返回一个列表,无论您是否有单个结果。@CésarCação,您注意到我的答案中的
FirstOrDefault