ASP.Net MVC从ActionLink返回值

时间:2011-01-18 04:27:39

标签: c# asp.net-mvc-2

我正在建立一个Payees网格......有几列的简单网格。我的观点如下:

<table width="600" cellspacing="3" cellpadding="0" border="0">

         收款人姓名     用过的     未来付款设定     没有。交易

&lt;%foreach(Model.PayeeListeItems中的var p)    {%GT;              &lt;%= Html.ActionLink(“修改”,“修改”,p.PayeeId)%&gt;          &lt;%= p.Name%&gt;     &lt;%= p.IsUsed.ToString()%&gt;     &lt;%= p.IsAssignedToBill.ToString()%&gt;     &lt;%= p.TransactionCount.ToString()%&gt;     

&LT;%    }%GT;

这是我正在与之斗争的ActionLink。我的控制器中有一个Modify方法,但我不知道如何获得我想要传递的PayeeId,这是所选的收款人...

当我在运行时单击链接时,我得到:

参数字典包含非可空类型'System.Int32'的参数'id'的空条目,用于方法'System.Web.Mvc.ActionResult Modify(Int32)'可选参数必须是引用类型,a可空类型,或声明为可选参数。 参数名称:参数

我的控制器方法如下所示:

        public ActionResult Modify(Int32 id)
    {
        PayeeDto p = Services.PayeeServices.GetPayeeById(id);
        SinglePayeeItem spi = new SinglePayeeItem
                                  {
                                      Deleted = p.Deleted,
                                      Name = p.Name,
                                      PayeeId = p.PayeeId
                                  };
        return View(spi);
    }

1 个答案:

答案 0 :(得分:3)

您使用p.payeeId作为RouteValues参数,对吧?您需要将其作为对象传递。所以你的ActionLink看起来像是:

<%=Html.ActionLink("Modify", "Modify", new { id = p.PayeeId })