【问题标题】:Html.ActionLink() not working for passing a C# objectHtml.ActionLink() 不适用于传递 C# 对象
【发布时间】:2013-08-23 22:47:40
【问题描述】:

我正在尝试通过 ActionLink 将对象传递给 MVC 控制器中的方法。

剃刀语法:

@Html.ActionLink("Export to Excel","ReturnExcelOfViewableResponses",new { SearchObject = Model.SearchObject})

标记中实际显示的内容:

<a href="/EducationAgency/ReturnExcelOfViewableResponses?SearchObject=DTO.SearchObject" tabindex="29">Export to Excel</a>

控制器方法被调用得很好,因此没有理由在这里发布。需要做什么才能将实际值传递到 actionLink 而不是DTO.SearchObject?根据HTML.ActionLink method,看来我的语法是正确的(使用 MVC 4)。

【问题讨论】:

    标签: c# asp.net-mvc razor html.actionlink


    【解决方案1】:

    您应该能够将 DTO 传递给ActionLink

    @Html.ActionLink("Export to Excel","ReturnExcelOfViewableResponses",Model.SearchObject)
    

    任何公共字段都将作为查询参数键/值对添加。

    【讨论】:

    • @levininja - 不,与您在问题中链接的答案所说的相反,我很确定这些方法在 MVC 1、2、3 和 4 之间没有重大差异。与传递匿名对象(如您问题中的示例)相比,此功能很少使用。在任何一种情况下,传递的对象都定义了路由值——对象的(第一级)属性(最终)通过反射变成查询参数——不管它是什么对象。但是您在问题中传递的匿名对象只有一个“第一级”属性:SearchObject。
    猜你喜欢
    • 2012-10-25
    • 2014-12-23
    • 2016-08-28
    • 2023-03-30
    • 2013-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多