我将MVC 3.5转换为MVC2 4.0,得到错误'string.IsNullOrEmpty(string)'的最佳重载方法匹配有一些无效的参数 这是我的代码:
<% if (this.Model.VisitId == 0) { %>
mustSave = true;
<% } else { %>
mustSave = false;
<% } %>
<% if (String.IsNullOrEmpty(Html.ValidationSummary())) { %>
dataChanged = false;
<% } else { %>
dataChanged = true;
<% } %>
提前致谢
答案 0 :(得分:7)
在.net 4.0中。 ValidationSummary returns MvcHtmlString
不是string
和3.5一样。
答案 1 :(得分:7)
Html.ValidationSummary()
返回MvcHtmlString
,而不是普通字符串。所以,试试这个:
<% if (MvcHtmlString.IsNullOrEmpty(Html.ValidationSummary())) { %>
答案 2 :(得分:0)
在新MVC中,Html.ValidationSummary()返回MvcHtmlString,而不是普通字符串。您可以使用ValidationSummary()。ToString()或ToHtmlString()使其成为一个字符串。
答案 3 :(得分:0)
谢谢各位。当我遇到同样的错误时,这个话题帮助了我:
"Message":"The best overloaded method match for 'string.IsNullOrEmpty(string)' has some invalid arguments","Data":null,"InnerException":null,"HelpURL":null
碰巧我将 a dynamic object 传递给 string.IsNullOrEmpty(),其中参数在运行时的类型为 JValue 而不是 string。所以我必须首先将参数显式转换为字符串:
var isValid = !string.IsNullOrEmpty(obj.Value);
与 MvcHtmlString 类似。