C# Ajax调用在ASP MVC中无法正常运行

C# Ajax调用在ASP MVC中无法正常运行,c#,jquery,ajax,asp.net-mvc,C#,Jquery,Ajax,Asp.net Mvc,所以我尝试为一个博客创建一个评论部分。我在jquery中识别打开的博客帖子id时遇到问题 我从chrome控制台得到这些错误 GET http://localhost:46223/api/posts//comments postid应该位于双斜杠之间,但不是。当我在ajax调用中手动输入postID时,它工作得非常好 Api控制器正在公开数据库中的注释,相关代码如下 [Route("api/posts/{postId:long}/comments")] public class Com

所以我尝试为一个博客创建一个评论部分。我在jquery中识别打开的博客帖子id时遇到问题

我从chrome控制台得到这些错误

GET http://localhost:46223/api/posts//comments
postid应该位于双斜杠之间,但不是。当我在ajax调用中手动输入postID时,它工作得非常好

Api控制器正在公开数据库中的注释,相关代码如下

[Route("api/posts/{postId:long}/comments")]
    public class CommentsController : Controller
    {
        readonly BlogDataContext _dbContext;
        public CommentsController(BlogDataContext db)
        {
            _dbContext = db;

        }
        // GET: api/values
        [HttpGet]
        public IQueryable<Comment> Get(long postId)
        {
            return _dbContext.Comments.Where(x => x.PostId == postId);
        }

我很抱歉,如果我没有包括一些东西,但我有很多代码。如果你还需要知道什么,请告诉我


我也非常感谢您对我的错误提出一些建议。

您的代码正在从postEl的数据属性
post id
获取post id。postEl可以是单击的同一锚定标记,也可以是它的父标记,具有
blog post
css类

var $el = $(el),
postEl = $el.hasClass('blog-post') ? $el : $el.parents('.blog-post'),
postId = postEl.data('post-id'),
但是在HTML标记中,锚标记没有这样的数据属性。因此,如果您添加了它,您的代码将能够获取帖子id并使用它来构建url

<a href="#" class="show-comments blog-post" data-post-id="250">Show Comments</a>

非常感谢。我的评论部分在一个div blog post类中,所以我只是在那里添加了data post id属性,它就工作了!非常感谢
var $el = $(el),
postEl = $el.hasClass('blog-post') ? $el : $el.parents('.blog-post'),
postId = postEl.data('post-id'),
<a href="#" class="show-comments blog-post" data-post-id="250">Show Comments</a>
<a href="#" class="show-comments blog-post" data-post-id="@Model.PostId">Show Comments</a>