从视图向控制器的方法传递参数时收到错误

本文关键字:参数 错误 视图 控制器 方法 | 更新日期: 2023-09-27 17:50:45

因此,这是导致错误的两段代码。

视图:

...
@foreach (FinalCampaign fc in @Model)
{
   <h1>@fc.Camp.Id</h1>
   <h2>@Html.ActionLink(@fc.Camp.Name, "GoToPage", "Home", fc.Camp.Id, null)</h2>
   <p>@fc.Camp.CampaignStartDate - <font color="Blue"><u>@fc.Username</u></font></p>
   <p>@fc.Camp.Description</p>
}

这是我的控制器的"GotoPage"功能:

public ActionResult GoToPage(string id)
    {
        CampaignCommentsModel ff = new CampaignCommentsModel();
        var cT = new CampaignTable(new OracleDatabase("DefaultConnection"));
        Campaign camp = cT.GetCampaignById(id);
        ...
        return View(ff);
    }

这就是我的问题:GotoPage(参数(中的"id"为null,它没有从我的视图中接收到值。

从视图向控制器的方法传递参数时收到错误

您应该使用:

 <h2>@Html.ActionLink(@fc.Camp.Name, "GoToPage", "Home", new { id = fc.Camp.Id}, null)</h2>

不能以这种方式传递嵌套属性。默认的模型绑定器不能将这样的对象与操作方法中的参数相关联。

ActionLink扩展:https://msdn.microsoft.com/en-us/library/dd492124(v=vs.118(.aspx

模型绑定:什么是ASP中的模型绑定。NET MVC?

<h2>@Html.ActionLink(@fc.Camp.Name, "GoToPage", "Home",new {id = fc.Camp.Id}, null)</h2>

请参阅此处Actionlink方法