【问题标题】:JavaScript runtime error: Unable to get property 'domain_name' of undefined or null referenceJavaScript 运行时错误:无法获取未定义或空引用的属性“域名”
【发布时间】:2013-05-06 08:06:18
【问题描述】:

我将弹出窗口显示为Undefined 并显示如下错误:

无法获取未定义或空引用的属性“domain_name”。

任何机构都可以帮助解决这个问题

从视图:

 @Html.ActionLink("Details", "", 
     new { id = item.id },
     new { onclick = "someFunction(" + item.id + ")", 
     href = "javascript:void(0)" }) 

Javascript

function someFunction(id) {

   $.ajax({
    type: 'POST',
    url: '@Url.Content("~/")Contracts/Test/',
    data: { 'id': id },       
    dataType: 'json',
    success: function (data) {
        alert(data.domain_name);
    },
    error: function (xhr, status, exception) {
            alert("Error: " + exception + ", Status: " + status);
        }
});    
}

控制器动作

enter code here
public JsonResult Test(int id)
    {
        var result = (from cntrct in db.contracts where cntrct.id == id 
              select new { cntrct.domain_name, cntrct.id}).ToArray();    
        return Json(result);
    }

以下是我从 db 获取但无法传回 JavaScript 的数据。

错误

SCRIPT7002:XMLHttpRequest:网络错误 0x2ef3,由于错误 00002ef3,无法完成操作。 合同

【问题讨论】:

  • 所以错误是因为从Json ActionResult传回的数据为null;您能否验证 id 是否正确传递给someFunction,并且 db 中存在具有相应 id 值的合约?
  • 感谢您的快速回复。该 id 值存在于 DB 中,但无法将该数据传递回 javascript..
  • HTML 的 ID 不应该只是数字。
  • 返回的数据是一个数组。警报应该是 if(data.length){ alert(data[0].domain_name); }

标签: javascript jquery asp.net-mvc


【解决方案1】:

你能在 Json Action 方法中试试这个吗

动作

public JsonResult Test(int id)
{
    var result = (from cntrct in db.Contracts where cntrct.ID == id 
          select new { cntrct.domain_name, cntrct.id, cntrct......}).ToArray();    
    return Json(result);
}

脚本

function someFunction(id) {
   $.ajax({
        type: 'POST',
        url: '@Url.Content("~/")Contracts/Test/',
        data: { 'id': id },
        dataType: 'json',
        success: function (data) { 
               alert(data.domain_name);
        }
   });
}

【讨论】:

  • 域名在Json数据中..调试时可以看到
  • 我可以在其中传递单个属性,但无法将对象从 Controller 传递给 javascript...
  • 如果还是报错,能否贴出响应Json结果?
  • 这个也不能正常工作..我遇到了类似的错误.. GET localhost:54272/Contracts/Test?id=3 500 (Internal Server Error) jquery-1.8.3.min.js:2 send jquery-1.8.3 .min.js:2 v.extend.ajax jquery-1.8.3.min.js:2 v.(匿名函数) jquery-1.8.3.min.js:2 someFunction JScript1.js:21 onclick Contracts:210
  • OOhoo 最后我得到了这个......我们唯一需要做的就是 alert(data[0].domain_name); :) 感谢您的所有时间...@Praveen James
【解决方案2】:

噢噢!!终于我明白了……我们唯一需要做的就是 alert(data[0].domain_name); :)

【讨论】:

  • 这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方发表评论 - 您可以随时评论自己的帖子,一旦您有足够的reputation,您就可以comment on any post
猜你喜欢
  • 1970-01-01
  • 2013-10-06
  • 2015-07-10
  • 2013-09-30
  • 1970-01-01
  • 1970-01-01
  • 2015-07-07
  • 2014-02-22
  • 2017-07-17
相关资源
最近更新 更多