Jquery AJAX发布到ASP.NET核心MVC 6控制器的操作方法和参数为空
但是,在控制器中,参数始终为空/默认值。请查看下面的代码,如果我犯了愚蠢的错误或其他什么,请告诉我 这是我的控制器的操作方法:Jquery AJAX发布到ASP.NET核心MVC 6控制器的操作方法和参数为空,jquery,json,asp.net-core-mvc,asp.net-core-1.0,Jquery,Json,Asp.net Core Mvc,Asp.net Core 1.0,但是,在控制器中,参数始终为空/默认值。请查看下面的代码,如果我犯了愚蠢的错误或其他什么,请告诉我 这是我的控制器的操作方法: [HttpPost] public JsonResult AjaxMethodTemp([FromBody]UserAccount user) { //string Name = name + DateTime.Now.ToString(); //return Json(Name); try { //if (Model
[HttpPost]
public JsonResult AjaxMethodTemp([FromBody]UserAccount user)
{
//string Name = name + DateTime.Now.ToString();
//return Json(Name);
try
{
//if (ModelState.IsValid)
//{
_context.userAccount.Add(user);
_context.SaveChanges();
ModelState.Clear();
ViewBag.Massege = user.FirstName + "_" + user.LastName + " is Successfully Registered";
//}
}
catch (DbUpdateException /* ex */)
{
//Log the error (uncomment ex variable name and write a log.
ModelState.AddModelError("", "Unable to save changes. " +
"Try again, and if the problem persists " +
"see your system administrator.");
}
return Json(user.FirstName + "_" + user.LastName + " is Successfully Registered");
}
function SaveCity() {
debugger
var $form = $('#contactForm');
$form.removeData('validator');
$form.removeData('unobtrusiveValidation');
$.validator.unobtrusive.parse($form);
$form.validate();
if ($form.valid()) {
$.ajax({
type: "POST",
url: "/Home/AjaxMethodTemp",
//url:"/api/users",
contentType: "application/json; charset=utf-8",
data:
{
Password: "abc",
UserName: "abc",
Email: "abc@gmail.com",
FirstName: "abc",
LastName: "abc"
},
//data: JSON.stringify({
// FirstName: $('#FirstName').val(),
// LastName: $("#LastName").val(),
// Email: $("#Email").val(),
// UserName: $("#UserName").val(),
// Password: $("#Password").val()
//}),
success: function (data) {
}
});
}
}
<form id="contactForm">
@* asp-controller="Home" asp-action="AjaxMethod method="post""*@
@if (ViewBag.Massege != null)
{
<div class="form-control">
<div class="col-md-10">@ViewBag.Massege</div>
</div>
}
<div class="form-group">
<label asp-for="FirstName" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="FirstName" id="FirstName" class="form-control" />
<span asp-validation-for="FirstName" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<label asp-for="LastName" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="LastName" id="LastName" class="form-control" />
<span asp-validation-for="LastName" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<label asp-for="Email" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="Email" id="Email" class="form-control" />
<span asp-validation-for="Email" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<label asp-for="UserName" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="UserName" id="UserName" class="form-control" />
<span asp-validation-for="UserName" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<label asp-for="Password" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="Password" id="Password" class="form-control" />
<span asp-validation-for="Password" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<label asp-for="ConfirmPassword" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="ConfirmPassword" class="form-control" />
<span asp-validation-for="ConfirmPassword" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
@*<button type="submit" class="btn btn-default" id="btn1">Register</button>*@
@*<input type="button" id="btnGet" value="Get Current Time" />*@
<input type="submit" name="Sumbit" onclick="SaveCity(); return false;" />
@*<a class="delete-link" h>Delete</a>*@
</div>
</div>
</form>
public class UserAccount
{
[Key]
public int UserID { get; set; }
[Required(ErrorMessage ="First Name Required")]
public string FirstName { get; set; }
[Required(ErrorMessage ="Last Name Required")]
public string LastName { get; set; }
[Required(ErrorMessage ="Email Required")]
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
[Required(ErrorMessage ="User Name Required")]
public string UserName { get; set; }
[Required(ErrorMessage ="Password Required")]
[DataType(DataType.Password)]
public string Password { get; set; }
[Compare("Password",ErrorMessage ="Password Not Match")]
[DataType(DataType.Password)]
public string ConfirmPassword { get; set; }
}
这是我的AJAX帖子:
[HttpPost]
public JsonResult AjaxMethodTemp([FromBody]UserAccount user)
{
//string Name = name + DateTime.Now.ToString();
//return Json(Name);
try
{
//if (ModelState.IsValid)
//{
_context.userAccount.Add(user);
_context.SaveChanges();
ModelState.Clear();
ViewBag.Massege = user.FirstName + "_" + user.LastName + " is Successfully Registered";
//}
}
catch (DbUpdateException /* ex */)
{
//Log the error (uncomment ex variable name and write a log.
ModelState.AddModelError("", "Unable to save changes. " +
"Try again, and if the problem persists " +
"see your system administrator.");
}
return Json(user.FirstName + "_" + user.LastName + " is Successfully Registered");
}
function SaveCity() {
debugger
var $form = $('#contactForm');
$form.removeData('validator');
$form.removeData('unobtrusiveValidation');
$.validator.unobtrusive.parse($form);
$form.validate();
if ($form.valid()) {
$.ajax({
type: "POST",
url: "/Home/AjaxMethodTemp",
//url:"/api/users",
contentType: "application/json; charset=utf-8",
data:
{
Password: "abc",
UserName: "abc",
Email: "abc@gmail.com",
FirstName: "abc",
LastName: "abc"
},
//data: JSON.stringify({
// FirstName: $('#FirstName').val(),
// LastName: $("#LastName").val(),
// Email: $("#Email").val(),
// UserName: $("#UserName").val(),
// Password: $("#Password").val()
//}),
success: function (data) {
}
});
}
}
<form id="contactForm">
@* asp-controller="Home" asp-action="AjaxMethod method="post""*@
@if (ViewBag.Massege != null)
{
<div class="form-control">
<div class="col-md-10">@ViewBag.Massege</div>
</div>
}
<div class="form-group">
<label asp-for="FirstName" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="FirstName" id="FirstName" class="form-control" />
<span asp-validation-for="FirstName" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<label asp-for="LastName" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="LastName" id="LastName" class="form-control" />
<span asp-validation-for="LastName" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<label asp-for="Email" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="Email" id="Email" class="form-control" />
<span asp-validation-for="Email" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<label asp-for="UserName" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="UserName" id="UserName" class="form-control" />
<span asp-validation-for="UserName" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<label asp-for="Password" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="Password" id="Password" class="form-control" />
<span asp-validation-for="Password" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<label asp-for="ConfirmPassword" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="ConfirmPassword" class="form-control" />
<span asp-validation-for="ConfirmPassword" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
@*<button type="submit" class="btn btn-default" id="btn1">Register</button>*@
@*<input type="button" id="btnGet" value="Get Current Time" />*@
<input type="submit" name="Sumbit" onclick="SaveCity(); return false;" />
@*<a class="delete-link" h>Delete</a>*@
</div>
</div>
</form>
public class UserAccount
{
[Key]
public int UserID { get; set; }
[Required(ErrorMessage ="First Name Required")]
public string FirstName { get; set; }
[Required(ErrorMessage ="Last Name Required")]
public string LastName { get; set; }
[Required(ErrorMessage ="Email Required")]
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
[Required(ErrorMessage ="User Name Required")]
public string UserName { get; set; }
[Required(ErrorMessage ="Password Required")]
[DataType(DataType.Password)]
public string Password { get; set; }
[Compare("Password",ErrorMessage ="Password Not Match")]
[DataType(DataType.Password)]
public string ConfirmPassword { get; set; }
}
这是我的表单数据:
[HttpPost]
public JsonResult AjaxMethodTemp([FromBody]UserAccount user)
{
//string Name = name + DateTime.Now.ToString();
//return Json(Name);
try
{
//if (ModelState.IsValid)
//{
_context.userAccount.Add(user);
_context.SaveChanges();
ModelState.Clear();
ViewBag.Massege = user.FirstName + "_" + user.LastName + " is Successfully Registered";
//}
}
catch (DbUpdateException /* ex */)
{
//Log the error (uncomment ex variable name and write a log.
ModelState.AddModelError("", "Unable to save changes. " +
"Try again, and if the problem persists " +
"see your system administrator.");
}
return Json(user.FirstName + "_" + user.LastName + " is Successfully Registered");
}
function SaveCity() {
debugger
var $form = $('#contactForm');
$form.removeData('validator');
$form.removeData('unobtrusiveValidation');
$.validator.unobtrusive.parse($form);
$form.validate();
if ($form.valid()) {
$.ajax({
type: "POST",
url: "/Home/AjaxMethodTemp",
//url:"/api/users",
contentType: "application/json; charset=utf-8",
data:
{
Password: "abc",
UserName: "abc",
Email: "abc@gmail.com",
FirstName: "abc",
LastName: "abc"
},
//data: JSON.stringify({
// FirstName: $('#FirstName').val(),
// LastName: $("#LastName").val(),
// Email: $("#Email").val(),
// UserName: $("#UserName").val(),
// Password: $("#Password").val()
//}),
success: function (data) {
}
});
}
}
<form id="contactForm">
@* asp-controller="Home" asp-action="AjaxMethod method="post""*@
@if (ViewBag.Massege != null)
{
<div class="form-control">
<div class="col-md-10">@ViewBag.Massege</div>
</div>
}
<div class="form-group">
<label asp-for="FirstName" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="FirstName" id="FirstName" class="form-control" />
<span asp-validation-for="FirstName" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<label asp-for="LastName" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="LastName" id="LastName" class="form-control" />
<span asp-validation-for="LastName" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<label asp-for="Email" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="Email" id="Email" class="form-control" />
<span asp-validation-for="Email" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<label asp-for="UserName" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="UserName" id="UserName" class="form-control" />
<span asp-validation-for="UserName" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<label asp-for="Password" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="Password" id="Password" class="form-control" />
<span asp-validation-for="Password" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<label asp-for="ConfirmPassword" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="ConfirmPassword" class="form-control" />
<span asp-validation-for="ConfirmPassword" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
@*<button type="submit" class="btn btn-default" id="btn1">Register</button>*@
@*<input type="button" id="btnGet" value="Get Current Time" />*@
<input type="submit" name="Sumbit" onclick="SaveCity(); return false;" />
@*<a class="delete-link" h>Delete</a>*@
</div>
</div>
</form>
public class UserAccount
{
[Key]
public int UserID { get; set; }
[Required(ErrorMessage ="First Name Required")]
public string FirstName { get; set; }
[Required(ErrorMessage ="Last Name Required")]
public string LastName { get; set; }
[Required(ErrorMessage ="Email Required")]
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
[Required(ErrorMessage ="User Name Required")]
public string UserName { get; set; }
[Required(ErrorMessage ="Password Required")]
[DataType(DataType.Password)]
public string Password { get; set; }
[Compare("Password",ErrorMessage ="Password Not Match")]
[DataType(DataType.Password)]
public string ConfirmPassword { get; set; }
}
任何人都有办法帮我…试试这个
var UserAccount{
Password: "abc",
UserName: "abc",
Email: "abc@gmail.com",
FirstName: "abc",
LastName: "abc"
};
$.ajax({
type: "POST",
url: "/Home/AjaxMethodTemp",
data: { user: UserAccount},
success: function (data) {
alert("SUCCESS");
}
});
您的
AjaxMethodTemp
属于哪一类?它从哪个类继承?您是否使用MVC或Web API作为基础框架?我猜你混合了其中的两种AjaxMethodTemp
是HomeConroller方法,我正在使用MVC。你知道如何在MVC中使用ajax调用保存数据吗?当你尝试使用JSON.stringify({…})时会发生什么代码>?JSON.stringify({…})
可以在我尝试代码时发布值。您可以尝试使用JSON.stringify({…})代码>