动态表单,Microsoft JScript运行时错误:'b'为null或不是对象

时间:2009-09-23 16:32:09

标签: javascript asp.net-mvc asp.net-ajax

在将部分表单添加到当前表单(父/子的类型)时出现错误。

部分表单加载了ajax,并且可以没有几个部分表单/子项。

我得到它的工作,每个部分表单获取一个ID,我可以保存等,但每次我点击ActionLink我得到:

Microsoft JScript runtime error: 'b' is null or not an object

我的动作链接:

      <%=Ajax.ActionLink("Add Address", "AddAddress", new 
        {
            Prefix = ViewData["Prefix"],
            ListDivName = AdressListDivName,
            ListIndexName = AdressListIndexName,
            ListIndex = AdressListIndex
        }, 
        new AjaxOptions 
        {
            UpdateTargetId = AdressListDivName,
            OnSuccess = "ListApi.ResetAddLink(event,'" + AdressListIndexName + "')",
            InsertionMode = InsertionMode.InsertAfter 
        })%>

我用Google搜索并发现其他人有相同的错误,但链接不同

这个错误让我发疯了:)我是javascript / ajax的新手,可能是一个明显的错误:(

编辑:这是控制器中的AddAddress函数:

public ActionResult AddAddress(string Prefix, string ListDivName, string       ListIndexName, int ListIndex, string lang)
    {
        MyAdress aa = new MyAdress { };

        ViewData["PageLang"] = lang;
        ViewData["Prefix"] = Prefix;
        ViewData["ListDivName"] = ListDivName;
        ViewData["ListIndexName"] = ListIndexName;
        ViewData["ListIndex"] = ListIndex;

        return View("_MyAdresseListItem", aa);
    }

Javascript功能:

ListApi.ResetAddLink = function(evt, ListIndexName) {
evt = evt || window.event;
var target = evt.target || evt.srcElement;

var Index = parseInt(document.getElementById(ListIndexName).value);
var Pre = target.href.substring(0, target.href.lastIndexOf("=") + 1);

Index = Index + 1;
document.getElementById(ListIndexName).value = Index;

target.href = Pre + Index;
}

更新

同时我尝试了其他一些东西,当我使用debug.js时我得到了

Sys.ArgumentUndefinedException: Value cannot be undefined. Parameter name: method

我将OnSuccess更改为

OnSuccess = "function() { ListApi.ResetAddLink(event, '" + AdressListIndexName + "'); }"

现在我得到一个简单的“需要对象”:(

1 个答案:

答案 0 :(得分:2)

问题在于OnSuccess函数中没有正确传递的事件....所以我想通过函数传递信息而不是传递事件并从中获取信息......