如何从视图中的选定值获取数据 .NET Core API?

How to get the data from a selected value in a view .NET Core API?

我正在创建一个应用程序,用户可以在其中 post 信息并查看信息 posted,类似于论坛。我创建了一个列表,其中显示了存储在数据库中的出版物,因此在主页上,该列表显示了每个出版物的标题、描述、日期等。现在,我要做的是 select 列表中 post 中的任何一个,然后在其他视图中显示 selected post 的完整信息。我正在使用 MVC 视图及其各自的控制器来使用 API.

API 控制器上用于获取 selected post 信息的代码:

    [HttpGet]
    [Route("seePost")]
    public IActionResult seePost([FromBody] int idSelPost)
    {
        PostContentModel post = new PostContentModel();

        var postContent = db.Content.Find(idSelPost);

        var postInfo = db.Forum.Find(idSelPost);

        post.TittlePost = postInfo.TittlePost;

        post.DescPost = postInfo.DescPost;

        post.CreationDate = postInfo.CreationDate;

        post.Content = postContent.Content;
        
        return Ok(post);
    }

使用上面的代码,我将两个不同的表 ContentForum 连接到 return 只有一个模型具有 post 的完整信息,知道什么post selected 方法接收一个整数,它是列表中显示的 post selected 的 id。我已经测试了邮递员在 JSON 文件上发送数字的方法,但似乎 the JSON value could not converted to System.Int32:

{
   "IdPost":6
}

另外,我试图通过创建一个模型 class 来做同样的事情,该模型只有一个 int 变量来存储 selected post 的 id 并将其作为seePost 方法中模型的一个参数,但它给了我“列的无效名称...”Sqlexception。

所以,我不知道该怎么做,感谢任何帮助。

路由

{
   "IdPost":6
}

意味着你需要接受一个属性 IdPost;

的对象
public class Post
{
   public int IdPost {get;set;}
}

[HttpGet]
[Route("seePost")]
public IActionResult seePost([FromBody] Post post)
{
   // TODO check if not null
   var id = post.Id;

直接发号码

6

在 URL 中发送 id。

[HttpGet]
[Route("seePost/{idSellPost}")]
public IActionResult seePost(int idSelPost)
{

“列名无效...”

您的模型似乎与数据库不同步。您需要确认 ContentForum 模型都已正确映射。