C# MVC - 将 URL 参数传递给方法

本文关键字:参数传递 方法 URL MVC | 更新日期: 2023-09-27 18:36:48

在我的 MVC 项目中将 url 参数传递给我的方法时遇到问题。当前遇到以下错误:

参数字典包含不可为空类型"System.Int32"的参数"id"的空条目,用于"mybloggywog"中的方法"System.Web.Mvc.ActionResult SinglePost(Int32)"。Controllers.PostController'.可选参数必须是引用类型、可为 null 的类型或声明为可选参数。

电话如下:

@{
    foreach (var article in ViewBag.DisplayPosts)
    {
        <a class="ArticleLink" href="@Url.Action("SinglePost", "Post", article.Id)">@article.Title</a>
        <p>@article.CreatedOn</p>
        <br/>
    }       
}

路由配置:

routes.MapRoute(
            "Post",
            "post/{id}",
            new { controller = "Post", action = "SinglePost", id = UrlParameter.Optional }
            );

和方法:

public ActionResult SinglePost(int id)
    {
        var entities = new blogEntities();
        var post = entities.Set<Post>();
        var postToDisplay = (from p in post
                             where p.Id == id
                             select p);
        ViewBag.SinglePost = postToDisplay;
        return View();
    }

C# MVC - 将 URL 参数传递给方法

尝试将其更改为匿名对象:

@Url.Action("SinglePost", "Post", new { id = article.Id })