Как получить данные формы и обработать данные в веб-API - PullRequest
0 голосов
/ 26 октября 2018

Я новичок в веб-API, здесь отправляю данные формы из приложения Angular 4 в веб-API.

данные формы содержат данные о регистрации пользователя в виде mFormData и изображение пользователя в виде mImage.

Я хочу сохранить изображение в системной папке, например: D: / uplodedImages и нужно хранить все данные пользователя в базе данных.

Я изо всех сил пытаюсь сделать вышеуказанные вещи.

service.ts (угловой 4)

  CreateNewComitteeMember(mFormData, mImage) {
    const formData: FormData = new FormData();
    formData.append('ImageFile', mImage, mImage.name);  
    formData.append('mFormData', JSON.stringify(mFormData));
    return this.http.post(this.BASE_URL + `/api/CreateNewComitteeMember`, formData)
  }

API

[AllowAnonymous]
        [HttpPost]
        [Route("api/CreateNewComitteeMember")]
        public Task<HttpResponseMessage> CreateNewComitteeMember()
        {
            //How to do the remaining things here.
        }

Может кто-нибудь помочь мне решить эту проблему.

1 Ответ

0 голосов
/ 27 октября 2018

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

Но поскольку объект Java не будет распознаваться ASP.NET. Вам нужно будет сериализовать «mFormData». Таким образом, запрос изменится следующим образом.

formData.append('mFormData', JSON.stringify(mFormData));

Теперь в вашем веб-API создайте модель, которая копирует вашу «mFormData», назовем ее MFormData.

Пример,

public class MFormData 
{
    public string Name {get; set;}
    public int Age {get; set;}
    public string Xyz {get; set;}
    public string ImageUrl {get; set;}
    ...
}

Теперь, в вашем API вы можете получить доступ к таким данным.

    [AllowAnonymous]
    [HttpPost]
    [Route("api/CreateNewComitteeMember")]
    public Task<HttpResponseMessage> CreateNewComitteeMember()
    {
        var imageData = HttpContext.Current.Request.Params["mImage"];
        var formData = new JavaScriptSerializer()
        .Serialize<MFormData>(HttpContext.Current.Request.Params["mFormData"]);
        try
        {
            //Function to save the file and get the URL
            formData.ImageUrl = new ApplicationBussinessLayer().SaveFileInDir(imgeData);
            //Function to save data in the DB
            var saveData = await new AppicationBussinessLayer().SaveUserInfo(formData);    
        }
        catch(Exception ex)
        {
            return Request.Create(HttpStatusCode.Code, "Some error");
        }
        return Request.Create(HttpStatusCode.OK, "Data Saved");
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...