Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
165 views
in Technique[技术] by (71.8m points)

c# - Can I pass complex object in additionalParameter of uploader?

In my angular code I'm passing form to API. I use Ng2FileUploader. During setting options I added additionalParameter:

addSubject() {
 if (this.subjectCreationForm.valid) {
  this.uploader.setOptions({url: this.baseUrl + 'Subject/AddNewSubject', additionalParameter: {
    userId: this.authService.decodedToken.nameid,
    subject: {name: "test", description: "test"}
 }})
  this.uploader.uploadAllFiles(null);
 }
}

In my API (C#, .NET Core 3.1) I can get userId, but subject is not recognized.

This is SubjectDto in API:

public class SubjectDto
{
    public int Id { get; set; }
    public int Price { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
}

And controller:

    [HttpPost]
    [Route("AddNewSubject")]
    public async Task<IActionResult> AddNewSubject([FromForm]AddNewSubjectCommand command)
    {
        if (command.UserId != User.FindFirst(ClaimTypes.NameIdentifier).Value)
            return Unauthorized();

        return Ok(await CommandAsync(command));
    }

Command model:

public class AddNewSubjectCommand : IRequest<Unit>
{
    public string UserId { get; set; }
    public SubjectDto Subject { get; set; }
    public ICollection<IFormFile> Files { get; set; }
}

Result now: enter image description here

Is it possible to pass complex object like subject and map it to SubjectDto when passing FromForm?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
等待大神答复

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...