当我提交包含更改的表单时,表格会更新,但当我刷新页面时,更改会消失。当我查看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);
}