2015-09-28 5 views
-2

Я работаю над шаблоном базы данных EAV. Моя модель выглядит так:Я просто хочу передать список asp.net web api, используя angularjs

public class LeadsModel 
{ 
    public int? CompId { get; set; } 
    public int LeadID { get; set; } 
    public string LeadName { get; set; } 
    public string source { get; set; } 
    public string status { get; set; } 
    public int UserId { get; set; } 

    [Required] 
    public List<AttributesModel> AList { get; set; } 

} 

мой взгляд, как это. В виду, что я собираю список атрибутов, и я хочу отправить обратно использование угловых символов.

<div class="form-group" ng-repeat="At in Attributes" > 
         <label for="{{At.Attri}}" class="col-md-4 control-label">{{At.Attri}}</label> 
         <div class="col-md-8"> 
          @*<input type="hidden" name="{{At.AID}}" data-ng-model="newLead.NewAlist" />*@ 
          <input type="text" class="form-control" id="{{At.Attri}}" name="{{At.Attri}}" pl placeholder="Enter {{At.Attri}}" data-ng-model="newLead.AList.AttriValue" ng-blur="AddItemToList(newLead.Alist.AttriValue)" /> 
         </div> 
        </div> 

Мой Угловая код как этот

$scope.add = function() 
    { 
     $scope.loading = true; 
     this.newLead.AList = $scope.listt; 
     $http.post('/api/Leads/Posttbl_Lead', this.newLead).success(function (data) { 
      alert("Added Successfully!!"); 
      $scope.loading = false; 
      $scope.addLMode = false; 
     }) 
     .error(function() { 
      $scope.error = "An Error has occured while loading posts!"; 
      $scope.loading = false; 
     }); 
    } 

и мой контроллер Web API, как это

public IHttpActionResult Posttbl_Lead(LeadsModel tbl_Lead) 
    { 
     if (!ModelState.IsValid) 
     { 
      return BadRequest(ModelState); 
     } 
     tbl_Lead newLead = new tbl_Lead(); 
     newLead.LeadName = tbl_Lead.LeadName; 
     newLead.source = tbl_Lead.source; 
     newLead.status = tbl_Lead.status; 
     newLead.LeadName = tbl_Lead.LeadName; 
     newLead.CompId = tbl_Lead.CompId; 

     db.tbl_Lead.Add(newLead); 
     db.SaveChanges(); 

     return CreatedAtRoute("DefaultApi", new { id = tbl_Lead.LeadID }, tbl_Lead); 
    } 
+0

У меня вопрос не возникает. –

ответ

1

Используйте этот код, чтобы разместить Ваш newLead из AngularJs в tbl_Lead вашего консортора API. Это дополнение link для того, чтобы вы передали объект списка/массива APIу You.

$http({ 

    contentType: "application/json; charset=utf-8",//required 

    method: "POST", 

    url: '/api/Leads/Posttbl_Lead', 

    dataType: "json",//optional 

    data:{ "tbl_Lead": newLead }, 

    async: "isAsync"//optional 

}) 
    .success(function (response) { 

     alert('Saved Successfully.');      

    }) 
    .error(function() { 
     $scope.error = "An Error has occured while loading posts!"; 
     $scope.loading = false; 
    }); 

Edit-1

Ниже упомянуты это способ отправить ALIST внутри LeadsModel к вашему API.

LeadsModel для отправки на сервер через API.

{ 
    CompId=compId, 
    LeadID=leadID, 
    AList=[{FirstObject=firstObject},{SecondObject=secondObject}] 
} 
+0

Спасибо за ответ, как я могу отправить AList с ним. –

+0

Я не могу понять, что именно для вас становится сложным. Чтобы отправить любой список API, он должен быть в формате массива JSON. Я редактирую ответ, пожалуйста, проверьте его и дайте мне знать. –