Я что-то не так делаю и не могу понять где ...
У меня есть это на мой взгляд - 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