【问题标题】:Argument type 'object' is not assignable to parameter type 'string'参数类型“对象”不可分配给参数类型“字符串”
【发布时间】:2015-10-22 23:44:08
【问题描述】:

我的 aspx 页面中有以下标签

<input type="checkbox" id="chkFlags" name="chkFlags" value="<%#DataBinder.Eval(DataItemContainer, "DataItem.Tag_ID") %>" <%#SelectTags(DataBinder.Eval(Container, "DataItem.Tag_ID")) %>/>

我收到以下错误:

参数类型“对象”不能分配给参数类型“字符串”

突出显示的行的部分是:

<%#SelectTags(DataBinder.Eval(Container, "DataItem.Tag_ID"))

我的 SelectTags 例程如下:

        public string SelectTags(string Tag_ID)
    {

        string[] aTags = mobjFormat.StripObjectToString(Request.Form["chkFlags"]).Split(Convert.ToChar(","));  //added square brackets to Request.Form and syntax to convert from string to char 10/21/15 Max //
        string sItem = "";
        string sReturn = "";

        mobjSecurity.MessageStack_Insert("Procedure", "SelectTags", "");

        foreach (string sItem_loopVariable in aTags)
        {
            sItem = sItem_loopVariable;
            if (sItem.Trim() == Tag_ID.ToString().Trim())  //added parenthesis to Trim and ToString 10/21/15 Max //
            {
                sReturn = " checked='checked' ";
            }
        }

        mobjSecurity.MessageStack_Insert("sReturn", sReturn, "SelectTags");
        return sReturn;

    }

我不确定需要完成什么来修复此错误,也许我只是遗漏了一些东西(我花了很多时间查看此代码)

谁能指出我修复此 TIA 的方向

【问题讨论】:

  • DataBinder.Eval 返回一个object,而您的SelectTags 想要一个string。看起来您可能需要使用 ToString() 进行转换或转换?
  • 谢谢尤哈尔!我不敢相信就是这样。也许该回家睡觉了:-)
  • 正要回答这个问题,然后才意识到答案在评论中!您应该将答案添加为答案,以便可以接受! :)
  • @SpaceBison -- 完成

标签: c# asp.net


【解决方案1】:

正如 Juharr 指出的那样,我只是错过了在线的 ToString 转换。所以我将其修复如下:

<%#SelectTags(DataBinder.Eval(Container, "DataItem.Tag_ID").ToString())

【讨论】:

    猜你喜欢
    • 2021-07-17
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-03
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    相关资源
    最近更新 更多