2009-10-01 2 views
0

я делаю что-то неправильно, и я не могу понять, где ...asp.net MVC Ajax.ActionLink проблема

У меня есть это на мой взгляд - 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> 

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

P.S.

с 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 

ответ

1

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

0

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

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

+0

yes Я включаю их на свой сайт. Мастер – bogdanbrudiu

0

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

Смежные вопросы