Sys.ArgumentUndefinedException: значение не может быть неопределенным - PullRequest
2 голосов
/ 19 декабря 2008

Я занимаюсь разработкой некоторых ajax-компонентов для asp.net mvc framework beta.

но я получил следующее исключение. У кого-нибудь есть проблемы, как у меня?

Sys.ArgumentUndefinedException: значение не может быть неопределенным.

и мой исходный код такой.

<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">

<script src="../../Scripts/jquery-1.2.6.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftAjax.debug.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcAjax.debug.js" type="text/javascript"></script>

<script type="text/javascript">
    var myView;

    $(pageLoad);

    function pageLoad() {
        myView = $create(Sys.UI.DataView, {}, {}, {}, $get("ajaxResult"));
        $("#callAjaxButton").click(callActionMethod);
    }

    function callActionMethod() {
        $.getJSON("/Home/GetCategories", bindData);
    }

    function bindData(data) {
        myView.set_data(data);
    }

</script>

<input type="button" id="callAjaxButton" value="ajaxCall" />

<div id="ajaxResult"></div>    

</asp:Content>

1 Ответ

1 голос
/ 19 декабря 2008

Из предоставленного вами фрагмента необходимо учитывать несколько моментов:

  • Отсутствует ссылка на скрипт для шаблонов Microsoft ASP.NET 2.0 AJAX для Visual Studio 2008 .

  • Вместо события System.Application.init (вы используете функцию jquery document.ready (вызывается всякий раз, когда DOM готов к просмотру и манипулированию). возникает после загрузки всех сценариев, но до создания объектов).

Можете ли вы попробовать это, чтобы увидеть, работает ли он для вас:

<script src="../../Scripts/jquery-1.2.6.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftAjax.debug.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcAjax.debug.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftAjaxTemplates.debug.js" type="text/javascript"></script>

<script type="text/javascript">
    var myView;

    Sys.Application.add_init(pageLoad);

    function pageLoad() {
        myView = $create(Sys.UI.DataView, {}, {}, {}, $get("ajaxResult"));
        $("#callAjaxButton").click(callActionMethod);
    }

    function callActionMethod() {
        $.getJSON("/Home/GetCategories", bindData);
    }

    function bindData(data) {
        myView.set_data(data);
    }

</script>

<input type="button" id="callAjaxButton" value="ajaxCall" />
<div id="ajaxResult"></div>    

Скотт Хансельман написал хороший пост на эту тему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...