C# 在MVC中使用博客视图路由博客id
我想能够点击一个博客链接,打开显示该特定博客页面的博客。我的路线配置接受可选的id参数。我也在用AJAX做这件事,所以希望点击一个博客链接并返回到BlogController。我到处找了找,但找不到有帮助的东西 这是我的密码C# 在MVC中使用博客视图路由博客id,c#,jquery,ajax,asp.net-mvc,C#,Jquery,Ajax,Asp.net Mvc,我想能够点击一个博客链接,打开显示该特定博客页面的博客。我的路线配置接受可选的id参数。我也在用AJAX做这件事,所以希望点击一个博客链接并返回到BlogController。我到处找了找,但找不到有帮助的东西 这是我的密码 CSHTML @foreach (var blodID in blogCont) { <a href="??" id="blogHREF" blog-id="@blodID.blogID"> Text </a> }
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);
}
}
CSHTML
@foreach(blogCont中的变量blodID)
{
}
AJAX
$(文档)。在(“单击”上,“#blogHREF”,函数(){
var retBlogID=$(this.attr(“blog id”);
变量blogData={
blogID:retBlogID
}
$.ajax({
键入:“获取”,
url:“Blog/getBlog”,
数据:博客数据
});
});
#
公共类BlogController:控制器
{
公共行动结果索引()
{
返回视图();
}
[HttpGet]
public ActionResult getBlog(blogTable blogged)
{
返回视图(blogged.blogAuthor);
}
}
如果您只是导航到一个新页面(如您的问题所示),我只需要使用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>
这是假设blodID
是一个blogTable
删除[HttpGet]
,我们不需要它
还值得注意的是,您的
标签上的id
在我看来并不是唯一的值。这些必须是独一无二的。无论您在HTML中在何处使用Id
。请注意上述内容。你的getBlog
方法意味着获取一个blogTable
对象,它看起来像是用var
类型传递一个名为blogData
的东西,所以天知道那是什么。同样,由于您只需在对象中设置ID
,因此无法获得blogged.blogAuthor
。我个人只想发布,而不是GET
。另外,我认为在这种情况下,您不需要方法之上的协议。另外,您的ajax
似乎不正确。blogData只是一个变量,它只保存发送到控制器的所有数据。好吧,不正确,你能详细说明什么是不正确的吗?我相信你应该看看这个教程,在我看来,如果你只是简单地导航到另一个页面,这将是有帮助的,老实说,我只会使用Html帮助器,并将你想要的变量值传递到控制器中