我正在尝试将字符串读入数组,并且我收到错误“无法将类型'字符串'实现转换为'string []'。
此处发生错误:
string[] sepText = result.Tables[0].Rows[0].Field<string>("WebHTML").UrlDecode();
我的完整if else声明如下:
if (!string.IsNullOrEmpty(result.Tables[0].Rows[0].Field<string>("WebHTML")))
{
string[] sepText = result.Tables[0].Rows[0].Field<string>("WebHTML").UrlDecode();
NewsContent.Text = sepText[1];
if (!string.IsNullOrEmpty(sepText[0]))
Image1.ImageUrl = sepText[0];
else
Image1.Visible = false;
NewsTitle.Text = String.Format("<a href=\"{0}/news/{1}/{2}.aspx\">{3}</a>", Extensions.GetServerName(true), result.Tables[0].Rows[0].Field<int>("News_Item_ID"), result.Tables[0].Rows[0].Field<string>("Title").UrlFormat(), result.Tables[0].Rows[0].Field<string>("Title"));
Hyperlink1.NavigateUrl = String.Format("{0}/news/{1}/{2}.aspx", Extensions.GetServerName(true), result.Tables[0].Rows[0].Field<int>("News_Item_ID"), result.Tables[0].Rows[0].Field<string>("Title").UrlFormat());
}
else
{
Hyperlink1.Visible = false;
Image1.Visible = false;
}
感谢您的帮助!
网址解码的EDIT代码:
public static string UrlDecode(this string str)
{
return System.Web.HttpUtility.UrlDecode(str);
}
答案 0 :(得分:3)
result.Tables[0].Rows[0].Field<string>("WebHTML")
将在第一个表的第一行中为您提供WebHTML字段的值,该字段是单string
而不是string[]
。
您可能希望显示 UrlDecode()
的代码,因为它看起来像是自定义实现而不是内置框架版本之一。
您还声明UrlDecode方法将string
作为参数并返回string
。请记住,字符串与字符串数组不同。
答案 1 :(得分:1)
看来你正试图把:
result.Tables[0].Rows[0].Field<string>("WebHTML").UrlDecode();
将字符串返回到字符串数组中。 简单地将你的sepText变量称为字符串而不是字符串数组,你应该好好去,例如:
string sepText = result.Tables[0].Rows[0].Field<string>("WebHTML").UrlDecode();
稍后在您的代码中,您显然需要阅读字符串的内容,如下所示:
Image1.ImageUrl =sepText;
答案 2 :(得分:0)
假设您使用的UrlDecode
是来自here的string
,那么结果是string[]
而不是{{1}}!
答案 3 :(得分:0)
UrlDecode返回一个字符串,您将其分配给数组。
如果您需要这些部件,则必须使用该字符串来创建Url对象。
Url url = new Url(result.Tables[0].Rows[0].Field<string>("WebHTML"));
然后获取部件。
答案 4 :(得分:0)
我不认为URLDecode的工作方式与您认为的有效。所有URLDecode都是从字符串中删除URL编码。它不会返回一个字符串数组 - 只是你给它的字符串的解码值。
http://msdn.microsoft.com/en-us/library/system.web.httputility.urldecode.aspx
示例:您的网络浏览器用%20替换空格。这会将%20更改回空格。
答案 5 :(得分:0)
这是因为此行的结果是“string”,并且您尝试将其分配给数组,因为UrlDecode不会生成数组。你可能想要的是使用方法split()来创建一个分隔符数组?