重载 HTTP POST

问题描述 投票:0回答:1

请告诉我,为什么我会收到错误:获取错误 内部服务器错误http://127.0.0.1:5001/swagger/v1/swagger.json

出现错误的代码部分:

[HttpPost]
        [ActionName("CreatePostWithMediaId")]
        public async Task<IActionResult> CreatePost([FromForm]string? heading, 
            [FromForm]string content, 
            [FromForm] int tagId, 
            [FromForm] int? mediaId = null)
        {
            content = content.Replace(@"\n", "\n");
            Post post = new Post()
            {
                heading = heading,
                content = content,
                tag = tagId,
                mediaId = mediaId,
                date = DateTime.UtcNow,
            };
            _unitOfWork.PostRepository.Create(post);
            _unitOfWork.Save();
            return Ok(post);
        }

        [HttpPost]
        [ActionName("CreatePostWithFile")]
        public async Task<IActionResult> CreatePost([FromForm] string? heading,
            [FromForm] string content,
            [FromForm] int tagId,
            [FromForm] IFormFile? file = null)
        {
            content = content.Replace(@"\n", "\n");
            var mediaResult = await _fileManager.UploadFile(file);
            Post post = new Post()
            {
                heading = heading,
                content = content,
                tag = tagId,
                mediaId = mediaResult.id,
                date = DateTime.UtcNow,
            };
            _unitOfWork.PostRepository.Create(post);
            _unitOfWork.Save();
            return Ok(post);
        }

我将感谢您的任何帮助

c# swagger overloading
1个回答
0
投票

这不是最好的解决方案,但它可能对某人有用:

[HttpPost("{heading}/{content}/{tagId:int}/{mediaId:int}")]
        public async Task<IActionResult> CreatePost([FromForm]string? heading, 
            [FromForm]string content, 
            [FromForm] int tagId, 
            [FromForm] int? mediaId = null)
        {
            content = content.Replace(@"\n", "\n");
            Post post = new Post()
            {
                heading = heading,
                content = content,
                tag = tagId,
                mediaId = mediaId,
                date = DateTime.UtcNow,
            };
            _unitOfWork.PostRepository.Create(post);
            _unitOfWork.Save();
            return Ok(post);
        }

        [HttpPost]
        public async Task<IActionResult> CreatePost([FromForm] string? heading,
            [FromForm] string content,
            [FromForm] int tagId,
            [FromForm] IFormFile? file = null)
        {
            content = content.Replace(@"\n", "\n");
            var mediaResult = await _fileManager.UploadFile(file);
            Post post = new Post()
            {
                heading = heading,
                content = content,
                tag = tagId,
                mediaId = mediaResult.id,
                date = DateTime.UtcNow,
            };
            _unitOfWork.PostRepository.Create(post);
            _unitOfWork.Save();
            return Ok(post);
        }
© www.soinside.com 2019 - 2024. All rights reserved.