【问题标题】:Route Blog id with view of Blog in MVC使用 MVC 中的博客视图路由博客 ID
【发布时间】:2020-03-11 11:31:32
【问题描述】:

我希望能够单击博客链接并打开显示该特定博客页面的博客。我的路由配置接受可选的 id 参数。我也在使用 AJAX 执行此操作,因此希望单击博客链接并返回到 BlogController。我四处寻找,但找不到对我有帮助的东西..

这是我的代码

CSHTML

@foreach (var blodID in blogCont)
{
    <a href="??" id="blogHREF" blog-id="@blodID.blogID">
        Text
    </a>
}

AJAX

$(document).on("click", "#blogHREF", function () {
    var retBlogID = $(this).attr("blog-id");

    var blogData = {
        blogID: retBlogID
    }

    $.ajax({
        type: "GET",
        url: "Blog/getBlog",
        data: blogData
    });
});


C#   

public class BlogController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    [HttpGet]
    public ActionResult getBlog(blogTable blogged)
    {
        return View(blogged.blogAuthor);
    }

}

【问题讨论】:

  • 只是关于上述内容的一些注意事项。您的 getBlog 方法旨在获取 blogTable 对象,看起来您正在传递一个名为 blogDatavar 类型的东西,所以上帝知道那是什么。同样由此,您无法获得blogged.blogAuthor,因为您只是在对象中设置ID。而不是GET,我个人只会POST。另外,在这种情况下,我认为您不需要方法上方的协议。此外,您的 ajax 似乎不正确。
  • blogData 只是一个变量,它只保存所有发送到控制器的数据。好的,不正确,请您详细说明不正确的地方吗?
  • 我相信你应该看看这个教程,在我看来它会有所帮助docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/…
  • 如果您只是导航到另一个页面,老实说,我只会使用 Html 助手并将您想要的变量值传递给控制器​​

标签: c# jquery ajax asp.net-mvc


【解决方案1】:

如果您只是导航到新页面(如您的问题所暗示的那样),我会简单地使用 html 帮助器。

@Html.Action("getBlog", "Blog", new {blogged = blodID })

所以这个:

<a href="??" id="blogHREF" blog-id="@blodID.blogID">
    Text
</a>

应该是这样的:

<a href="@Html.Action("getBlog", "Blog", new {blogged = blodID })" id="// THIS HAS TO BE UNIQUE">
    Text
</a>

这是假设blodIDblogTable

删除[HttpGet],我们不需要它。

另外值得注意的是,&lt;a&gt; 标签上的id 在我看来并不是一个独特的价值。这些必须是独一无二的。无论您在 HTML 中何处使用Id

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-05
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多