Значение, которое отображается в виде числа на стороне Angular, отображается в формате даты на серверной стороне (.NET).C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Значение, которое отображается в виде числа на стороне Angular, отображается в формате даты на серверной стороне (.NET).

Сообщение Anonymous »

Хотя в модели, которую я отправил при сохранении в проекте Angular, проблем нет, значение идентификатора отображается в формате даты на внутренней стороне.
Эта проблема возникает только с 4- цифровые значения. Например, если значение идентификатора равно 82321, оно отображается в серверной части как обычно, но если это значение типа 4781, оно отображается как 1970-01-01T02:00:04.781.
Формат даты отображается в formDataWithFilesDto перед процессом десериализации.
Мой код .ts:
export class MyComponent extends BaseComponent implements OnInit {
studentId = 0;

ngOnInit(): void {
this.studentId = Number(this.config.data.studentId || '0');
console.log(typeof(this.studentId)) // appears as number in console.
}

saveStudent() {
const model = {
id: this.studentId,
// Other properties.
}

this.myService.saveStudent(model).subscribe(result => {
if (result.resultType == ResultType.Success) {
this.ch.messageHelper.showSuccessMessage(result.messages.toString());
} else {
this.ch.messageHelper.showErrorMessage(result.messages.toString());
}
});
}
}

Мой внутренний код:
[HttpPost]
public async Task SaveStudent([FromForm] FormDataWithFilesDto formDataWithFilesDto)
{
return await _myService.SaveStudent(JsonConvert.DeserializeObject(formDataWithFilesDto.FormData), formDataWithFilesDto.UploadedFiles).ConfigureAwait(false);
}

FormDataWithFilesDto:
public class FormDataWithFilesDto
{
public string FormData { get; set; }
public long? RefId { get; set; }
public List UploadedFiles { get; set; }
public T GetData()
{
if (FormData != null)
{
return JsonConvert.DeserializeObject(FormData);
}
return default(T);
}
}

СохранитьStudentDto:
public class SaveStudentDto
{
public int Id { get; set; }
// Other properties.
}

Вот что я пробовал:
  • Я пытался создать модель по типам на стороне Angular и отправить ее таким образом, но результат не изменился.
  • Я использовал parseInt вместо Number, но результат тот же.
  • Я отправил его с помощью String вместо числа или parseInt, но он по-прежнему отображается как дата.
Изменить: когда я проверяю модель с помощью console.log, модель, которую я отправил на внешний интерфейс заключается в следующем:
{
id: 4781,
studentName: 'John',
studentSurname: 'Doe',
examName: 'Maths',
examGrade: 50,
examDate: Tue May 14 2024 00:24:42 GMT+0300 (GMT+03:00)
}

Когда я проверяю вкладку «Сеть», отправленная мной модель выглядит так, поэтому в серверной части она выглядит так:
{
"id": "1970-01-01T02:00:04.781",
"studentName": "John",
"studentSurname": "Doe",
"examName": "Maths",
"examGrade": 50,
"examDate": "2024-05-14T00:24:42.812"
}

Помимо них, здесь используются файл service.ts и общая функция:
Service.ts:saveStudent(model: any) {
return this.httpHelper.post(
this.moduleport,
this.controllerName,
'SaveStudent',
this.ch.createFormDataWithFiles(['saveStudentFile'], model)
));
}

функция createFormDataWithFiles, поэтому dto в серверной части будет соответствовать следующей структуре:
createFormDataWithFiles(fileParameterNames: string[], additionalObject: any) {
const formData = new FormData();
const fileObjectName = 'uploadedFiles';
const additionalObjectName = 'formData';
for (let i = 0; i < fileParameterNames.length; i++) {
const fileParameterName = fileParameterNames;
formData.append(`${fileObjectName}[${i}].value`, fileParameterName.toString());
const files = this.globals.fileUploadFormData.getAll(fileParameterName);
for (const file of files) {
formData.append(`${fileObjectName}[${i}].files`, file);
}
}
if (!this.isNullOrUndefined(additionalObject) && !this.isNullOrWhiteSpace(additionalObjectName)) {
formData.append(additionalObjectName, JSON.stringify(additionalObject));
}
return formData;
}


Подробнее здесь: https://stackoverflow.com/questions/784 ... -format-in
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»