【问题标题】:ASP.NET MVC "The call is ambiguous" Error (System.IO.TextWriter.Write)ASP.NET MVC“调用不明确”错误(System.IO.TextWriter.Write)
【发布时间】:2013-11-05 00:22:59
【问题描述】:

我正在 ASP.NET MVC2 中创建一个动态 CSS 文件,但现在遇到了异常。一切正常,但突然间我收到 2 个变量的错误消息:

以下方法或属性之间的调用不明确:'System.IO.TextWriter.Write(string, params object[])' 和 'System.IO.TextWriter.Write(char[])'

代码示例如下:

#pageMaster .CCResultsText2 { 
    font-size: <%= ViewData.Model.FontSize %>; 
    color: <%= ViewData.Model.FontColor %>; 
}

但是,当我将 替换为

似乎在区分 System.IO.TextWriter.Write 方法的两种不同形式时似乎存在某种问题,但我不确定除了写出 Response.Write 方法之外我还能做什么。

【问题讨论】:

  • 你的模型的 FontSize 和 FontColor 属性是什么类型的?
  • 您的 FontColor 是否可以隐式转换为 string

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


【解决方案1】:

尝试将您的模型成员转换为特定类型,例如:

#pageMaster .CCResultsText2 { 
    font-size: <%= (int)ViewData.Model.FontSize %>; 
    color: <%= (string)ViewData.Model.FontColor %>; 
}

这些类型只是我的猜测。当然,将其转换为正确的类型;)

【讨论】:

  • 谢谢,这行得通。表中只有 2 个字段会发生这种情况是否有原因(当所有其他字段都具有相同的 varchar 数据类型时)?
  • 您是指 2 行字段值还是整个两列?您确定字段不为 null 吗?大多数情况下,当这些值为空或为空时会发生这种情况!所以我通常在显示它们之前测试值如下:&lt;%if(ViewData.Model.FontColor!=null){%&gt;&lt;%= (string)ViewData.Model.FontColor %&gt;&lt;%}%&gt;
【解决方案2】:

我的问题是视图中的值是在基类中设置的,我忘记让新控制器从基控制器继承。

ViewBag 返回的结果空值造成了歧义。

仅供参考,如另一个答案中所述添加类型转换将使错误消失,但它不能解决控制器中未正确设置值的根本问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-10
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 2016-01-07
    • 1970-01-01
    相关资源
    最近更新 更多