这看起来很奇怪,很可能是某个地方的 PEBKAC ......我正在尝试制作一个 jQuery 函数,该函数通过 Id 作用于页面元素,其中 Id 由 MVC3 站点的模型填充。
我有一个使用 Ajax 回发助手的表单,如下所示:
<div id="rsvp_@(Model.Meeting.Id)" class="rsvp">
<text>You coming or what?</text>
using (Ajax.BeginForm("Rsvp", "Member", new AjaxOptions() { InsertionMode = InsertionMode.Replace, UpdateTargetId = "meeting_" + Model.Meeting.Id, OnBegin = "TryRsvp();", OnSuccess = "DidRsvp();", OnFailure = "FailRsvp();"}))
{
@Html.HiddenFor(m => m.CurrentUser.Id);
@Html.HiddenFor(m => m.Meeting.Id);
<input type="submit" name="btnSubmit" value="Yes!" />
<input type="submit" name="btnSubmit" value="No" />
}
</div>
当调用其中一个提交按钮时,TryRsvp() 的 javascript 会触发:
function TryRsvp() {
alert('trying to rsvp');
$('#rsvp_@(Model.Meeting.Id)').toggle();
alert('did script');
}
我收到两个警报 - 但切换不起作用。
我查看了正在输出的代码,该行如下所示:
$('#rsvp_323e52cc-3058-4bfd-9a4f-0cb9653ebe99').toggle();
这看起来是正确的。
奇怪的是 - 如果我硬编码该行(即我使用 firebug 来查找生成的脚本,然后将其复制并直接粘贴到页面上),那么它工作正常。但是,当 MVC3 动态生成时,它会失败 - 尽管据我所知,生成的 javascript 是相同的。
这里发生了什么?MVC3 交付页面的方式和脚本是否会在这里有所作为?
任何线索表示赞赏