从视图向控制器传递参数时接收错误

时间:2015-05-26 13:23:58

标签: c# asp.net-mvc razor

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

观点:

...
@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,它没有从我的视图中接收到值。

2 个答案:

答案 0 :(得分:2)

您应该使用:

 <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

模型绑定:What is model binding in ASP.NET MVC?

答案 1 :(得分:0)

$('<div/>', {
    'id': 'fullinfo',
    'style': ' width: 80%;height: 100px;background:black;border: none;position:absolute;left:10%;top:30%;z-index:0;'
}).appendTo('body');

$('#fullinfo').animate({
    width: "100%",
    height: "100%",
}, 800);

请参阅此处Actionlink method