【问题标题】:ASP.NET MVC Form: Can submit with ENTER key but not Submit buttonASP.NET MVC 表单:可以使用 ENTER 键提交,但不能使用提交按钮
【发布时间】:2016-11-13 17:43:46
【问题描述】:

我正在尝试在 ASP.NET MVC 中实现一个简单的搜索表单。现在我的cshtml看起来像这样

@using (Html.BeginForm("SearchDemo", "Home", FormMethod.Post))
{
    <div>
        Last Name:<br>
        <input type="text" id="nameToFind" name="nameToFind">

        <input type="button" id="submitId" name="submit" value="submit" />

    </div>
}

我的控制器看起来像这样

[HttpPost]
public ActionResult SearchDemo(string nameToFind)
{
    return RedirectToAction("Register", "Account"); //Only redirecting for now to test
}

按下提交按钮不会调用控制器,但按下 ENTER 会调用。我猜这意味着我的点击事件被 JavaScript 或其他东西吃掉了,所以我试图在 Chrome 中暂停脚本执行,但意识到 browserlink.js 陷入了无限循环。那是问题吗?无论哪种方式,我怎样才能停止无限循环?

【问题讨论】:

    标签: javascript jquery asp.net asp.net-mvc asp.net-mvc-4


    【解决方案1】:

    浏览器不知道将此按钮用作提交。

    改变

    type="button"
    

    type="submit"
    

    【讨论】:

    • 或者,您可以使用&lt;button&gt;Submit(or some other text)&lt;/button&gt; 创建提交按钮。为防止提交,请将type="button" 添加到按钮标签(从技术上讲,您也可以将type="submit" 添加到button,但从来没有真正的理由。
    【解决方案2】:

    而不是将type 设置为"button"

    <input type="button" id="submitId" name="submit" value="submit" />
    

    type 更改为submit

    【讨论】:

      【解决方案3】:

      &lt;input type="button" id="submitId" name="submit" value="submit" formmethod="post" value="Submit using POST"/&gt;

      您需要在输入中使用表单方法。 这样按钮就知道回发了。 您还需要一个值属性。这将是对控制器中函数名称的引用。 w3 reference

      【讨论】:

      • 如果form 元素已经具有method 属性,则不需要formmethod。这也不能解决真正的问题type="button"
      • 是的,我同意你的看法。他应该改变 type="submit"
      猜你喜欢
      • 1970-01-01
      • 2012-02-17
      • 1970-01-01
      • 2021-08-28
      • 2011-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多