gpt4 book ai didi

javascript - 将数据保存到数据库 SQL SERVER 时出现问题

转载 作者:行者123 更新时间:2023-11-28 05:33:44 25 4
gpt4 key购买 nike

我是新来的,所以如果我做错了什么,请告诉我,好吗?我在网络开发方面也是新手。

我在使用 ASP.NET 中的 post 方法时遇到问题。

请不要介意按钮和方法的名称,好吗?我是巴西人,他们的名字都是葡萄牙语。

我有一个提交按钮,它调用名为 AdicionarCliente() 的 ng-click (Angularjs) 方法。

查看

     <div>
<input type="submit" class="btn btn-info" value="Salvar" ng-click="AdicionarCliente()"/>
</div>

JavaScript

    myApp.controller('AdicionarClientesController', function ($scope, $http)                 {
$scope.NomeCliente = "";
$scope.Telefone1Cliente = "";
$scope.AdicionarCliente = function () {
var promisse = $http.post("/app/AdicionarCliente/", { NomeCliente: $scope.NomeCliente, Telefone1Cliente: $scope.Telefone1Cliente })

promisse.then(function () {
window.location.href = "CadastroPet";
return false;

});
};

到这一部分为止效果都很好。每次我点击提交按钮时,它都会来到这里并在变量“promise”中输入函数。

现在 - 问题就在这里:

Controller

     [HttpPost]
public JsonResult AdicionarCliente(string NomeCliente, string Telefone1Cliente)
{
var db = new RexsoftEntities();
db.CLIENTES.Add(new CLIENTES() { NOME = NomeCliente,
TELEFONE1 = Telefone1Cliente});

db.SaveChanges();

var Clientes = db.CLIENTES.ToList();
return Json(Clientes, JsonRequestBehavior.AllowGet);
}

我第一次点击提交按钮时,此处的代码一直运行到 db.CLIENTES.Add 部分代码 - 然后它不会运行 DB.SAVECHANGES() 或此处的其余代码。第二次它就像一个魅力。问题仅发生在第一次提交命中时。

由于 Controller 未正确返回,因此 Javascript 代码的最后部分也无法运行。这部分:

    window.location.href = "CadastroPet";
return false;

有人可以帮助我吗?

(所有 View 都在这个div内

    <div ng-controller="AdicionarClientesController">

)

更新

我删除了提交按钮的类型并放置了简单按钮类型。现在似乎正在发挥作用。那么我该如何提交表格呢?

最佳答案

首先,根据 EF 最佳实践,尝试将数据库操作包装在 using() { } block 中。因此你的 Controller 就像

[HttpPost]
public JsonResult AdicionarCliente(string NomeCliente, string Telefone1Cliente)
{
var Clientes = new CLIENTES();
using(var db = new RexsoftEntities())
{
var _Clientes = new CLIENTES()
{
NOME = NomeCliente,
TELEFONE1 = Telefone1Cliente
};
db.CLIENTES.Add(_Clientes);
db.SaveChanges();
Clientes = db.CLIENTES.ToList();
}
return Json(Clientes, JsonRequestBehavior.AllowGet);
}

其次,在 JavaScript 方面,您正在使用 AngularJS。 window.location.href 在 Angular 中不起作用(请参阅 thisthis )。您必须使用 $window 服务(来源: using angularjs $window service )或 $location 服务(来源: using angularjs $location service )。还要避免使用 return false;

根据您的情况,以下内容将起作用。

promisse.then(function () {
$location.path('/CadastroPet');
});

关于javascript - 将数据保存到数据库 SQL SERVER 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39513704/

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