0

给定这样的 MVC 视图:

<form id="Form1">
    <label for="LastName">
        @Html.DisplayNameFor(m => m.LastName)
    </label>
    @Html.EditorFor(m => m.LastName)
    <button id="SubmitOne" onclick="SubmitOne_Click()">SubmitOne</button>
</form>

<form id="Form2">
    <label for="LastName2">
        @Html.DisplayNameFor(m => m.LastName2)
    </label>
    @Html.EditorFor(m => m.LastName2)
    <button id="SubmitTwo" onclick="SubmitTwo_Click()">SubmitTwo</button>
</form>

The javascript functions are irrelevant, this problem also occurs when they are empty or just have an alert.

单击 SubmitOne 时,一切都按预期工作。但是,当单击 SubmitTwo 时,整个页面都会刷新,这是不应该发生的。如果我注释掉 Form1,那么 Form2 可以正常工作。

这里发生了什么?

更新:这是javascript:

function SubmitOne_Click() {
    alert("One");
}

function SubmitTwo_Click() {
    alert("Two");
}

作为故障排除步骤,我将视图剥离为除了表单之外什么都没有,而脚本也什么都没有。我确实在 _Layout 中有对 Bootstrap、jqGrid 和 jQuery 的引用,但目前在此视图中没有使用它们。

4

3 回答 3

1

事实证明,我需要为我的按钮添加一个类型属性:

<button type="button" id="SubmitTwo" onclick="SubmitTwo_Click()">SubmitTwo</button>

这阻止了按钮完整提交表单。

另请参阅:如何防止按钮提交表单

于 2013-07-29T16:06:45.263 回答
0

页面上有多个表单不会导致任何问题,除非它们是嵌套的,这不是你的情况。我敢打赌,问题确实出在 JavaScript 中。

请向我们展示相关的 JavaScript 代码。

于 2013-07-26T23:15:45.773 回答
0

你没有嵌套的表单,你没有相同的 ID,你没有任何相同的东西。(所以这很好)

请发布您的 javascript 代码,并且很高兴看到您的剃刀表单代码以及您的控制器方法

于 2013-07-26T23:20:52.547 回答