Я работаю над проектом, в котором я сохраняю кое-что из локального хранилища в свою базу данных с помощью Knockout и MVC. Проблема, с которой я сталкиваюсь, заключается в том, что данные, которые я указываю в контроллере, которые мне также нужно отправить на серверную часть, вставляются, но данные, которые я извлекаю из внешнего интерфейса, не вставляются. Вот мой интерфейс api. js:
function Save(data){
// var promise = appsecurity.postApiCall(root+'/Save', ko.toJSON(data));
return appsecurity.putApiCall(root+'/Save', ko.toJSON(data));
}
Файл проекта. js
self.changeButtonText = function(){
self.ProcurementbuttonText(!self.ProcurementbuttonText())
self.ElementData = ko.observable(localStorage.getItem('ElementDataWidget'));
self.scorecardIDLocalStorage = ko.observable(localStorage.getItem('scorecardId'));
self.AllData = ko.observableArray([]);
self.AllData.push(self.scorecardIDLocalStorage,self.ElementData);
var JSONData = ko.toJSON(self.AllData);
PreferentialProcurementDashboardApi.Save(JSONData);
console.log((JSONData));
}
Итак, как вы можете видеть, я регистрирую свой JSONData
, чтобы убедиться, что я действительно получаю данные из локального хранилища, чтобы они отображались в моей консоли. Вот мой внутренний код
Controller.cs:
[HttpPut]
[Route("Save")]
[ValidateModel]
//[TrackActivity(section: "Dashboard", actionType: UserActivityActionType.Update, actionDescription: "Create/Update dashboard View Entry")]
public IHttpActionResult Save(DashboardConfigEditViewModel dashboardConfigEditViewModel)
{
//var databaseDetails = _prefentialDashboardConfigService.GetById(dashboardConfigEditViewModel.DashboardId);
//if (databaseDetails != null)
//{
// return AccessDenied();
//}
//int id = SaveDashboardConfigEditViewModel(dashboardConfigEditViewModel);
//return Ok(id);
dashboardConfigEditViewModel.DateCreated = DateTime.Now;
dashboardConfigEditViewModel.UserId = this.GetUserId();
_prefentialDashboardConfigService.Create(PreferentialProcurmentConfigViewModelMapper.MapToDomain(dashboardConfigEditViewModel));
return Ok();
}
My Mapper.cs:
public static PrefentialDashboardConfig MapToDomain(DashboardConfigEditViewModel dashboardconfigeditviewmodel)
{
var config = new PrefentialDashboardConfig();
config.DashboardId = dashboardconfigeditviewmodel.DashboardId;
config.ScorecardId = dashboardconfigeditviewmodel.ScorecardId;
config.UserId = dashboardconfigeditviewmodel.UserId;
config.DateCreate = dashboardconfigeditviewmodel.DateCreated;
config.DashboardConfig = dashboardconfigeditviewmodel.DashboardConfig;
return config;
}
My Dto.cs:
public class DashboardConfigEditViewModel
{
//public DashboardConfigEditViewModel()
//{
//}
public int DashboardId { get; set; }
public Guid ScorecardId { get; set; }
public Guid UserId { get; set; }
public DateTime DateCreated { get; set; }
public string DashboardConfig { get; set; }
}
и это поля в моей базе данных:
Create Table [data].PrefentialDashboardConfig(
DashboardId int IDENTITY(1,1) PRIMARY KEY,
ScorecardId uniqueidentifier,
UserId uniqueidentifier,
DateCreate DateTime,
DashboardConfig varchar(255)
)
Теперь, если вы посмотрите на мой контроллер, я установил дату и идентификатор пользователя в бэкэнде, который будет вставлен в мою базу данных, но идентификатор карты показателей и конфигурация i получить от внешнего интерфейса, который не анализируется полностью до моего внутреннего интерфейса