2016-09-15 2 views
1

나는 여기서 아주 신빙성이있다. 내가 잘못하면 나에게 알려주기 바란다. 나는 웹 개발에 있어서도 아주 새로운 사람이다.데이터를 데이터베이스에 저장하는 데 문제가 있음 SQL SERVER

ASP.NET의 게시 방법에 문제가 있습니다.

버튼과 메소드의 이름은 신경 쓰지 마세요. 나는 브라질이고 그들의 이름은 모두 포르투갈어입니다.

AdicionarCliente()라는 ng-click (Angularjs) 메서드를 호출하는 제출 단추가 있습니다.

보기

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

자바 스크립트

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; 

     }); 
}; 

그것은이 부분까지 잘 작동합니다. 제출 버튼을 눌렀을 때는 항상 여기에오고 변수 "promisse"에 함수를 입력하십시오.

지금 - 문제가 여기에 있습니다 :

컨트롤러

 [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() 또는 나머지 코드가 실행되지 않습니다. 두 번째로 매력처럼 작동합니다. 문제는 첫 번째 제출 히트에서 발생합니다.

컨트롤러의 반환이 제대로 발생하지 않기 때문에 자바 스크립트 코드의 마지막 부분도 실행되지 않습니다. 이 부분은

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

아무도 도와 줄 수 있습니까? 내가 제출 버튼의 TYPE을 제거

UPDATE

과 간단한 버튼 타입을 넣어

(이

<div ng-controller="AdicionarClientesController"> 

div에 내부의 모든보기이다). 지금 일하고있는 것 같습니다. 양식을 제출하려면 어떻게해야합니까?

+0

아마도 데이터베이스 삽입이 발생할 때 일종의 예외가 발생하고 있습니다. Visual Studio에서 디버깅하면 실행이 중단되고 오류가보고됩니까? – ADyson

+0

@ user3127450 : 던지고있는 예외/오류를 확인해 주시겠습니까? 여기에 오류 로그를 게시하십시오. 사람들이 대답 할 수 있도록! –

+0

@ADyson 그렇지 않습니다. 그것은 이상한 부분입니다. 그리고 데이터베이스를 확인할 때 값이 있습니다. 그래서 저장되었습니다. – user3127450

답변

0

제출 버튼의 TYPE을 제거하고 간단한 버튼 유형을 지정했습니다. 지금 일하고있는 것 같습니다. 내가 언급 한 동일한 js 스크립트를 사용하여 양식의 유효성을 검사하는 또 다른 방법을 만들었습니다. 기준이 충족되지 않으면 메시지와 반환 허위 진술을 반환합니다.

0

먼저 EF 모범 사례에 따라 using() { } 블록에 db 작업을 래핑 해보십시오. 따라서 귀하의 컨트롤러는 다음과 같습니다.

둘째, 자바 스크립트 측면에서는 angularjs를 사용하고 있습니다. window.location.href가 각도로 작동하지 않습니다 (thisthis 참조). $ 윈도우 서비스 (출처 : using angularjs $window service) 또는 $ 위치 서비스 (출처 : using angularjs $location service)를 사용해야합니다. return false;을 사용하지 마십시오.

아래의 경우 작동합니다.

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

답장을 보내 주신 Thx님께! "Clientes = db.CLIENTES.ToList(); 줄에 변환 문제가 있습니다." System.Data.Entity .DbSet RexsoftEntities.CLIENTES {get; 'System.Collections.Generic.List 형식을'Rexsoft.Clientes '로 암시 적 변환 할 수 없음 – user3127450

+0

제출 단추의 TYPE을 제거하고 간단한 단추 유형을 넣었습니다. 지금 일하고있는 것 같습니다. 양식을 제출하려면 어떻게해야합니까? – user3127450

+0

@ user3127450 첫 코멘트에 대해서 :'var Clientes = new CLIENTES();'와'Clientes = db.CLIENTES.ToList();'이것은 하나의 객체에리스트를 할당하려고 시도하고있다. 왜? ToList() 명령은 관련성이없는 것처럼 보입니다. 왜 클라이언트를 _ 반환합니까? – ADyson

관련 문제