gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 04:14:08 26 4
gpt4 key购买 nike

我有这个简单的表格:

@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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com