c# - 如何将 JSON 结果返回到 Ajax.BeginForm

标签 c# .net ajax asp.net-mvc asp.net-mvc-5

我有这个简单的表格:

@using (Ajax.BeginForm("CreateProductFromAjaxForm","Product" , 
                  null, 
                  new AjaxOptions() {  HttpMethod = "post", OnSuccess = "getresult" },
                  null))
{
    @Html.EditorFor(m => m)
    <hr />
    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" class="btn btn-info" value="Next" />
        </div>
    </div>
}  

并且,为了测试,一个简单的 Controller :

    [HttpPost]
    public JsonResult CreateProductFromAjaxForm(CreateProductModel model)
    {
        if (!ModelState.IsValid)
        {
            return new JsonResult()
            {
                JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                Data = new { result = "error" }
            };
        }

       //add to database

        return new JsonResult()
        {
            JsonRequestBehavior = JsonRequestBehavior.AllowGet,
            Data = new { result = "success"}
        };
    }  

我已经将这些添加到 Web.Config 中:

 <add key="ClientValidationEnabled" value="true" />
 <add key="UnobtrusiveJavaScriptEnabled" value="true" />

并将这些添加到我的脚本包中:

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                    "~/Scripts/jquery-{version}.js",
                    "~/Scripts/jquery.validate.js",
                    "~/Scripts/jquery.validate.unobtrusive.js"
                    ));

点击“提交”按钮后,结果页面只显示:

{"result":"success"}

我希望我可以在 OnSuccess="getresult" 处理程序中处理结果,但它似乎不起作用。

基本上,我主要将 Ajax.BeginForm 用于客户端验证。

你能告诉我哪里出了问题吗?

更新:我将 HttpMethod = "post" 添加到 AjaxOptions。

更新:getresult 定义在 Ajax.BeginForm 之上,如下所示:

<script type="text/javascript">
    var getresult = function (data) {
        alert(data.result);
    };
</script> 

最佳答案

您需要包含 jquery.unobtrusive-ajax.js 文件。

<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>

关于c# - 如何将 JSON 结果返回到 Ajax.BeginForm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20746784/

相关文章:

c# - 尝试生成 xsd :schema using xsd. exe 时出错

需要 .NET ORM 帮助

css - 如何从外部 Web 应用程序链接 css 文件

javascript - Ajax 调用总是返回成功

javascript - 如果值为空,有没有办法删除输入元素?

c# - 手动调用EventHandler时出现无意义的错误消息

C# GDI Invert Graphics 在 X 轴上翻转

c# - Entity Framework 核心 : How to dynamically get the DbSet from a derived Type?

c# - 没有 assemblyinfo 的通用类型的全名?

python - 如何使用 django 上的按钮 id 在 bootstrap 模式上显示数据库中的动态内容