asp.net mvc Ajax.ActionLink проблема - PullRequest
0 голосов
/ 02 октября 2009

Я что-то не так делаю и не могу понять где ...

У меня есть это на мой взгляд - CreateForm.aspx

<%@ Page Title="" Language="C#"  Inherits="System.Web.Mvc.ViewPage" %>

      <%= this.Ajax.ActionLink("Create New", "CreateForm", new { nr=ViewData["Nr"]??0 }, new AjaxOptions { UpdateTargetId = "panel" + (String.IsNullOrEmpty((string)ViewData["Nr"]) ? "0" : "1") }, new { id = "panel" + (String.IsNullOrEmpty((string)ViewData["Nr"]) ? "0" : "1") + "Form" })%>

    <div id="panel<%=String.IsNullOrEmpty((string)ViewData["Nr"])?"0":"1"%>"></div>

У меня есть это в моем контроллере -

        public ActionResult CreateForm(int nr)
        {
            ViewData["Nr"] = (nr++).ToString();
            return PartialView();
        }

когда я нажимаю на ссылку, я ожидаю, что ответ будет загружен в мою панель # (panel0, panel1 ...), но я перенаправлен на пустую страницу только с возвращенным содержимым

это сгенерированный html

<a href="/Member.aspx/CreateForm?nr=0" id="panel0Form" onclick="Sys.Mvc.AsyncHyperlink.handleClick(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace, updateTargetId: 'panel0' });">Create New</a>

    <div id="panel0"></div>

и после клика источник просмотра страницы выглядит следующим образом

 <a href="/Member.aspx/CreateForm?nr=0" id="panel1Form" onclick="Sys.Mvc.AsyncHyperlink.handleClick(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace, updateTargetId: 'panel1' });">Create New</a>

    <div id="panel1"></div>

Я включил Ajax JS

    <script src="/content/Microsoft/MicrosoftMvcAjax.debug.js" type="text/javascript"></script>

но я ожидал, что это войдет в панель0 ... что я делаю не так?

приписка

Отладка с vs.net в MicrosoftMvcAjax.debug.js я получаю ошибку

вокруг линии 3063 ...

 var e = Function._validateParams(arguments, [
        {name: "id", type: String},
        {name: "element", mayBeNull: true, domElement: true, optional: true}
    ]);
    if (e) throw e; <-here it trows an error

Ответы [ 3 ]

1 голос
/ 05 октября 2009

Я выяснил свою проблему ... кажется, что версия MicrosoftMvcAjax.js, которую я использовал, не была обновлена ​​.... Если у вас есть такие же проблемы, как у меня, получите последнюю версию mvccontrib ...

0 голосов
/ 04 июля 2010

У меня есть некоторый опыт решения подобных проблем. Кажется, что мы должны использовать файл сценария в правильном порядке, чтобы он работал. Точнее, вы должны включить MicrosoftAjax перед сценарием MicrosoftMvcAjax. Надеюсь, это поможет

0 голосов
/ 02 октября 2009

Не забыли ли вы включить необходимые файлы JavaScript перед вызовом AjaxLink?

Для правильной работы необходимо обратиться к файлам MicrosoftAjax.js и MicrosoftMvcAjax.js.

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