【问题标题】:Cannot convert from 'method group' to 'object'无法从“方法组”转换为“对象”
【发布时间】:2020-12-08 17:56:57
【问题描述】:

我想在我的 ASP.NET 项目的 razor CSHTML 内添加一个触发控制器上操作的按钮。

下面是部分代码

   <div class="col-12 col-md-12 col-lg-6">

   </div>

   <button type="submit" class="btn btn-warning w-100" 
   asp-action="update" asp-route-id="edit" asp-route-id2="@item.Value">
   <i class="fas fa-plus"></i>Update Template</button>

我得到的错误是无法从方法组转换为对象。

【问题讨论】:

  • 首先,这看起来像 ASP.NET Core,而不是 ASP.NET,它们是非常不同的产品,所以请不要混淆它们。其次,哪里出错了?从代码来看,它似乎在 @item.Value 上,但您可以告诉我们 item 是什么
  • 能否请您分享您背后的代码以及哪一行出现这样的错误?

标签: c# asp.net asp.net-core razor


【解决方案1】:

如果你想用HttpGet触发Controller上的动作,可以使用&lt;a&gt;&lt;/a&gt;标签:

<a asp-action="update" asp-route-id="edit" asp-route-id2="@item.Value"><i class="fas fa-plus"></i>Update Template</a>

如果你想用HttpPost触发Controller上的动作,你可以在按钮外添加一个表单:

 <form method="post">
        <button type="submit" class="btn btn-warning w-100"
                asp-action="update" asp-route-id="edit" asp-route-id2="@item.Value">
            <i class="fas fa-plus"></i>Update Template
        </button>
    </form>

我得到的错误是无法从方法组转换为 对象。

对于这个错误,我认为可能是你的后端代码造成的,可能是你想从一个方法中获取一个对象,而你忘记添加()。这是一个演示:

    public class A {
        public int Id { get; set; }
        public string Name { get; set; }
    
    }
    public A returnObject()
        {
            return new A {  Id=1,Name="a"};
        }
   public void Update()
        {
            A o=returnObject;//Here you need to use A o=returnObject();
        }
    

【讨论】:

    猜你喜欢
    • 2021-06-25
    • 2013-10-02
    • 1970-01-01
    • 1970-01-01
    • 2021-01-26
    • 2017-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多