gpt4 book ai didi

c# - 数据未从 View (ajax)发送到 Controller (c#)

转载 作者:行者123 更新时间:2023-12-01 07:54:15 25 4
gpt4 key购买 nike

我是 AJAX 新手,我不明白为什么我的数据没有发送到 Controller 。因此,在我的 View 上,我有两个输入表单和一个按钮:

HTML:

<input type="text" name="AddName">
<input type="text" name="AddEmail">
<button class="btn btn-mini btn-primary" type="button" name="add_btn" onclick="DbAdd()">Add</button>

我需要在单击“add_btn”按钮后从这两个输入中获取数据并将它们发送到 Controller 。

JavaScript:

<script type="text/javascript">
function DbAdd()
{
// Get some values from elements on the page:
var $form = $(this),
addedName = $form.find("input[name='AddName']").val(),
addedEmail = $form.find("input[name='AddEmail']").val();

$("#UserTable").html("<div>Please Wait...</div>");
$.ajax(
{
type: "POST",
url: "Save",
data:
{
name: addedName, email: addedEmail,
},
dataType: "json",
contentType: "application/json; charset=utf-8",
success: OnSuccess,
error: OnError
});
}

这是我的 Controller 的“保存”方法(我需要将从 ajax 获取的数据保存到我的数据库):

[HttpPost]
public ActionResult Save(User userinfo)
{
string message = "";

using (var uc = new UserContext())
{
uc.UserList.Add(userinfo);
uc.SaveChanges();
message = "Successfully Saved!";
}

if (Request.IsAjaxRequest())
{
return new JsonResult { Data = message };
}
else
{
ViewBag.Message = message;
return View(userinfo);
}
}

问题是,当我在 Controller 的方法中设置断点时,我不接收来自 ajax 的数据,仅接收 null 的数据。所以我向数据库添加一条空记录。有什么建议吗?

最佳答案

看起来像 $form.find("input[name='AddName']").val()$form.find("input[name='AddEmail'] ").val() 都返回 null。您应该使用 $("input[name='AddName']").val()$("input[name='AddEmail']").val() 代替。将 DbAdd() 的定义更改为以下

<script type="text/javascript">
function DbAdd()
{
// Get some values from elements on the page:
var addedName = $("input[name='AddName']").val(),
addedEmail = $("input[name='AddEmail']").val();

var user = { Name: addedName, Email: addedEmail };

$("#UserTable").html("<div>Please Wait...</div>");
$.ajax(
{
type: "POST",
url: "Save",
data: JSON.stringify({ userinfo: user }),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: OnSuccess,
error: OnError
});
}
</script>

关于c# - 数据未从 View (ajax)发送到 Controller (c#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25961807/

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