我有一个ASP.NET MVC Ajax表单的问题。我在表中生成了几个Ajax表单,如下所示:动态生成的Ajax.BeginForm
<%
foreach (var item in Model)
{
var statefulItem = item as StatefulEffectiveItem; %>
<tr>
<td>
<% using (Ajax.BeginForm("ShowAddActivity", "EffectiveItems", new { id = item.Id }, new AjaxOptions() { UpdateTargetId = "details", OnSuccess = "dialogIt" }))
{ %>
<input type="submit" name="activity" value="Add Activity" />
<% } %>
</td>
</tr>
<% } %>
迄今为止这么好。当我发布其中一种形式时,它会在div中呈现一个局部视图,并且这个新的局部视图包含一个新的Ajax.BeginForm(它不嵌套在原始形式中)。这第二个Ajax.BeginForm与我在表中生成的绝对相似,但是当我发布它时,我没有得到“Ajax帖子”,而是一个普通帖子,它将我发送到新页面。我不明白是什么导致了这两个Ajax表单之间的区别,为什么这个“动态生成的”Ajax表单的行为像一个普通的html表单?顺便说一句,我知道我可以用不同的方式使用Javascript来做到这一点,但我想了解,如果这只能使用MVC helper和Ajax Library来完成,并且如果答案是“是”,我会在哪里做错了。
非常感谢你,
黄蜂
您是否检查了页面的HTMl源?两个标签之间是否有差异? – ali62b 2010-02-02 11:12:13
绝对不是,生成的html/javascript代码是绝对等效的... – Wasp 2010-02-02 11:20:24