$ http PUT不保存数据库的值

时间:2014-08-24 02:59:15

标签: c# sql asp.net-mvc angularjs asp.net-web-api2

当我提交包含更改的表单时,表格会更新,但当我刷新页面时,更改会消失。当我查看chrome控制台网络选项卡时,我看到StatusCode 200但是预览和放大器中没有信息。响应标签。

查看

<form ng-submit="submitJob()" enctype="multipart/form-data">
                        <fieldset>
                            <div class="col-md-6">
                                <!-- Prepended text-->
                                <div class="form-group">
                                    <div class="input-group">
                                        <span class="input-group-addon">J. Number</span>
                                        <input style="width:100px" ng-model="currentItem.JobNumber" class="form-control" type="number">
                                    </div>
                                </div>
                                <!-- Prepended text-->
                                <div class="form-group">
                                    <div class="input-group">
                                        <span class="input-group-addon">J. Name</span>
                                        <input style="width:400px" ng-model="currentItem.JobName" class="form-control" type="text">
                                    </div>
                                </div>

                                <!-- Prepended text-->
                                <div class="form-group">
                                    <div class="input-group">
                                        <span class="input-group-addon">J. TESPM</span>
                                        <input style="width:150px" ng-model="currentItem.TESPM" class="form-control" type="text">
                                        <span class="input-group-addon">J. TESPM</span>
                                        <select class="form-control" ng-options="employee as employee.EmployeeFirstName + ' ' + employee.EmployeeLastName for employee in employeeArray | filter:{EmployeeIsPM : true}" ng-model="currentItem.TESPM">
                                            <option value="" disabled>Select</option>
                                        </select>
                                     </div>
                                </div>
                               </div> @*End Col-6*@

                            <div class="col-md-6">
                               <!-- Prepended text-->
                                <div class="form-group">
                                    <div class="input-group">
                                        <span class="input-group-addon">C. Name</span>
                                        <input style="width:400px" ng-model="currentItem.CustomerName" class="form-control btn btn-default" ng-click="editJobCustomerModal()" />
                                    </div>
                                </div>


                            </div>@*End Col-6*@
                        </fieldset><br />
                        <input style="float:right" class="btn btn-danger" ng-click="updateJob(currentItem)" type="button" value="Update" go-click="#" />
                        <input style="float:right; margin-right:20px" type="button" class="btn btn-primary" data-dismiss="modal" value="Cancel" go-click="#" />
                    </form>

控制器

$scope.updateJob = function (job) {
    jobFactory.updateJob(job).success(successCallback).error(errorCallback);
};
$scope.job = [];

var successCallback = function (data, status, headers, config) {
    notificationFactory.success();

    return $('#editJobModal').modal('hide');
};
var errorCallback = function (data, status, headers, config) {
    notificationFactory.error(data.ExceptionMessage);
};

app.js

    app.factory('jobFactory', function ($http) {
return {

    updateJob: function (job) {
        return $http.put('/api/apiJob/' + job.JobId, job);
    }
};
 });
app.factory('notificationFactory', function () {

return {
    success: function () {
        toastr.success("");
    },
    error: function (text) {
        toastr.error(text, "Error!");
    }
};
 });

DataAdapter的

public Job PutNewJob(int id, Job newJob)
    {
        Job job = new Job();

        job.JobId = newJob.JobId;
        job.JobNumber = newJob.JobNumber;
        job.JobName = newJob.JobName;
        job.JobDescription = newJob.JobDescription;
        job.OriginalContract = newJob.OriginalContract;
        job.ContractDate = newJob.ContractDate;
        job.Customers = newJob.Customers;
        job.Employees = newJob.Employees;

        job.CustomerName = newJob.CustomerName;
        job.CustomerPhoneNumber = newJob.CustomerPhoneNumber;
        job.CustomerFaxNumber = newJob.CustomerFaxNumber;
        job.CustomerAddress = newJob.CustomerAddress;
        job.CustomerCity = newJob.CustomerCity;

        db.Jobs.Add(job);
        db.SaveChanges();

        return db.Jobs.FirstOrDefault();
    }

apiController

 public HttpResponseMessage PutNewJob(int id, Job newJob)
    {
        ApplicationDbContext db = new ApplicationDbContext();
        if (!ModelState.IsValid)
        {
            return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
        }

        if (id != newJob.JobId)
        {
            return Request.CreateResponse(HttpStatusCode.BadRequest);
        }

       // db.Entry(newJob).State = EntityState.Modified;
        db.Entry(newJob).State = System.Data.Entity.EntityState.Detached;
        try
        {
            db.SaveChanges();

        }
        catch (DbUpdateConcurrencyException ex)
        {
            return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex);
        }

        return Request.CreateResponse(HttpStatusCode.OK);
    }

0 个答案:

没有答案