【问题标题】:MVC Ajax not working. Instead of same page, action open in new pageMVC Ajax 不工作。而不是同一页面,操作在新页面中打开
【发布时间】:2014-03-05 13:28:35
【问题描述】:

我正在使用 MVC 5。Ajax 编码不适合我。以下是我的编码。有什么想补充的

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Welcome</title>
</head>
<body>
    <div>
        @using (Ajax.BeginForm("UpdateForm", new AjaxOptions { UpdateTargetId = "textEntered" }))
        {
            @Html.TextBox("textBox1", "Enter text");
            <input type="submit" value="Submit" /><br />
            <span id="textEntered">Nothing Entered</span>                              
        }
})
    </div>

    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/bootstrap")

</body>
</html>

动作

    public string UpdateForm(string textBox1)
    {
        if (textBox1 != "Enter text")
        {
            return "You entered: \"" + textBox1.ToString() + "\" at " +
                DateTime.Now.ToLongTimeString();
        }

        return String.Empty;
    }

当我单击提交按钮时。它重定向到新页面。但在同一页面中,我想显示该值。

【问题讨论】:

    标签: ajax asp.net-mvc razor


    【解决方案1】:

    检查我的web.config 文件中的属性UnobtrusiveJavaScriptEnabled 是否设置为false。如果是,请将其更改为 true

    其他检查

    jquery.unobtrusive-ajax.min.js 已导入您的页面

    FOR MORE

    【讨论】:

      【解决方案2】:

      您没有设置Html.TextBoxidTextBox 助手的第一个参数设置name 属性的值,而不是id 的值。因此,您需要专门告诉助手为您的TextBox 设置哪些 Html 属性:

      @Html.TextBox("textBox1", 
                    "Enter text", 
                    new Dictionary<string, object>(){ {"id", "textBox1"} });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-08
        • 1970-01-01
        • 2015-10-18
        • 2011-08-30
        • 1970-01-01
        • 2019-12-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多