【问题标题】:ASP .NET MVC 3 - How to submit an ajax form nested within an html formASP .NET MVC 3 - 如何提交嵌套在 html 表单中的 ajax 表单
【发布时间】:2012-05-21 06:14:31
【问题描述】:

我有一个 ASP .NET MVC 3 项目,但我的“创建”视图之一存在问题。

我有使用 ajax 表单实现的级联下拉字段。

视图大致上是这样的:

@using (Html.BeginForm(...))
{
    @Html.MyDropDown1

    using (Ajax.BeginForm(...))
    {
        @Ajax.MyDropdown2
        <input type="submit" value="Select" />
    }

    using (Ajax.BeginForm(...))
    {
        @Ajax.MyDropdown3
        <input type="submit" value="Select" />
    }

    <!-- other form fields -->

    <input type="submit" value="Create" />
}

问题是ajax表单内的提交按钮实际上是提交外部html表单。

有没有办法指定我要提交的表单的名称?

我考虑将我的 ajax 表单放在我的 html 表单上方,这样就不会有任何嵌套 - 但我需要在我的 html 帖子中下拉所选项目的值。

谢谢, 皮特

【问题讨论】:

  • HTML &lt;form&gt;s 不能嵌套。
  • 基本上您正在创建无效的 HTML。您需要重新设计您正在尝试做的事情。
  • @Rudie 我猜有人可能会投反对票,因为嵌套 html 表显示“缺乏研究工作”。 (我没有对此投反对票,但这种疏忽也不会得到我的支持。
  • @Pete 对于 ajax,您根本不需要 form 元素。您可以从常规表单字段中提取数据并使用 ajax 调用提交。诚然,在使用那些 ajax helpera 时你不能这样做,但无论如何你不能像现在这样使用它们。
  • 我在发布之前进行了研究 - 但我只找到了有关将多个提交按钮用于 1 个表单中的不同操作的帮助。

标签: ajax asp.net-mvc-3 form-submit nested-forms


【解决方案1】:

正如 cmets 中所指出的,您不能使用嵌套表单。删除所有 using (Ajax.BeginForm(...)) 位,并通过 jQuery(或其他方式)处理您的 ajax 调用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-19
    • 2021-12-22
    • 1970-01-01
    • 2014-03-16
    • 2011-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多