ASP.Net MVC 从 ActionLink 返回值

发布于 2024-10-12 09:19:16 字数 1233 浏览 0 评论 0原文

我正在构建一个收款人网格......带有几列的简单网格。我的看法有以下几点:

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

收款人姓名 用过的 未来付款设置 交易数量

<% foreach (Model.PayeeListeItems 中的 var p) {%> <%=Html.ActionLink("修改", "修改", p.PayeeId) %> <%=p.Name %> <%=p.IsUsed.ToString() %> <%=p.IsAssignedToBill.ToString() %> <%=p.TransactionCount.ToString() %>

<% }%>

这是我正在与之对抗的 ActionLink。我的控制器中有一个修改方法,但我不确定如何获取我试图传递的 PayeeId,这是选定的收款人...

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

参数字典包含一个方法“System.Web.Mvc.ActionResult Modify(Int32)”的不可空类型“System.Int32”的参数“id”为空条目可选参数必须是引用类型、可为空类型或声明为可选参数。 参数名称:parameters

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

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

I am building a grid of Payees... Simple grid with a few columns. My view has the following:

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

Payee Name
Used
Future Payments set
No. Transactions

<% foreach (var p in Model.PayeeListeItems)
{%>

<%=Html.ActionLink("Modify", "Modify", p.PayeeId) %>

<%=p.Name %>
<%=p.IsUsed.ToString() %>
<%=p.IsAssignedToBill.ToString() %>
<%=p.TransactionCount.ToString() %>

<%
}%>

It's the ActionLink I am battling with. I have a Modify method in my Controller, but I'm not sure how to get the PayeeId I am trying to pass, which is the selected Payee...

When I click the link at runtime, I get:

The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Modify(Int32)' An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter.
Parameter name: parameters

My controller method looks like this:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

尤怨 2024-10-19 09:19:16

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

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

You're using p.payeeId as the RouteValues parameter, right? You need to pass it in as an object. So your ActionLink would look something like:

<%=Html.ActionLink("Modify", "Modify", new { id = p.PayeeId })
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文