2013-05-13 37 views
-2

添加这为后代,因为我找不到任何特定于我的Google搜索结果。以下方法或属性之间的调用不明确 - 使用字符串和字节[]输入重载

问题:

呼叫是下列方法或属性之间暧昧: 'System.Web.HttpUtility.UrlEncode(字符串)' 和 'System.Web.HttpUtility.UrlEncode(字节[])'

注意:这个问题至少是一种重载方法,它接受一个签名中的字符串和相似签名中的byte [](参见上面的UrlEncode签名)。

此问题在使用ASP.NET MVC4的部分中呈现为RuntimeBinderException,但可能发生在其他环境中。关键是UrlEncode具有两个重载,而运行时绑定程序无法确定要使用哪个重载。

+0

你确定它会感到困惑吗? – Paparazzi 2013-05-13 20:50:06

+0

100%肯定,如果通过混淆你的意思是模棱两可的。 :D – longda 2013-05-13 20:51:49

回答

0

我的解决方案:

虽然不是最佳,铸造输入为正确的类型似乎给运行时绑定够尖的,它可以解决的正确方法签名使用。

例如,这里是一些“失败”代码抛出上述异常(从MVC4部分 - 代码是从一个承包商,我不建议这是创建一个锚标签的最佳方式 - 但它确实与铸造

<a rel="nofollow" 
    href="https://twitter.com/share?text=Check%20this%20out!%[email protected](ViewBag.Title)%20 
    @(HttpUtility.UrlEncode(Request.Url.AbsoluteUri))%20%40codinghorror" 
    target="_blank"> 
    twitter 
</a> 

,就是这样,稍微改写:说明具体问题很好)

<a rel="nofollow" 
    href="https://twitter.com/share?text=Check%20this%20out!%[email protected](ViewBag.Title)%20 
    @(HttpUtility.UrlEncode((string)Request.Url.AbsoluteUri))%20%40codinghorror" 
    target="_blank"> 
    twitter 
</a> 

此修复程序后,重新加载我有问题的网页,果然,噗!它的工作。

Happy Trails!

+1

返回类型不是方法签名的一部分,我不明白它是如何解决你的问题的。 http://stackoverflow.com/questions/8808703/method-signature-in-c-sharp – I4V 2013-05-13 20:42:03

+0

嗨,不是在谈论返回类型。我正在谈论过载的各种输入。以下是UrlEncode()的重载列表:http://msdn.microsoft.com/en-us/library/system.web.httputility.urlencode.aspx – longda 2013-05-13 20:49:35

+0

已修复,在我的末尾有错字。 – longda 2013-05-13 20:50:39

相关问题