我做错了什么,我无法弄明白...
我在视图中有这个 - 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。
在MicrosoftMvcAjax.debug.js中使用vs.net进行修补我收到错误
第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
答案 0 :(得分:1)
我已经弄清楚了我的问题......我发现我使用的MicrosoftMvcAjax.js版本并不是最新的...... 如果您遇到类似问题,我可以获得最新版本的mvccontrib ...
答案 1 :(得分:0)
您是否记得在调用AjaxLink之前包含必要的javascript文件?
您需要引用MicrosoftAjax.js和MicrosoftMvcAjax.js才能使其正常工作。
答案 2 :(得分:0)
我对这类问题有一些经验。似乎我们必须以正确的顺序使用脚本文件才能使其工作。更具体地说,您应该在MicrosoftMvcAjax脚本之前包含MicrosoftAjax。 希望它有所帮助