Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在MVC中使用博客视图路由博客id_C#_Jquery_Ajax_Asp.net Mvc - Fatal编程技术网

C# 在MVC中使用博客视图路由博客id

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> }

我想能够点击一个博客链接,打开显示该特定博客页面的博客。我的路线配置接受可选的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);
    }

}
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帮助器,并将你想要的变量值传递到控制器中