【发布时间】:2014-12-30 05:06:54
【问题描述】:
我收到此错误:
System.ArgumentOutOfRangeException:指定的参数超出了有效值的范围。参数名称:索引。
相同的代码在 Windows 窗体应用程序中完美运行,但在 asp.net 中我看到此错误。
我的代码在这里:
public partial class Timeline : System.Web.UI.Page
{
TwitterService servis;
ListBox tweetid = new ListBox();
protected void Page_Load(object sender, EventArgs e)
{
servis = new TwitterService(consumer key,secret,token,token);
tweetid.Items.Clear();
ListBox2.Items.Clear();
IEnumerable<TwitterStatus> anasayfa = servis.ListTweetsOnHomeTimeline(new ListTweetsOnHomeTimelineOptions { Count = 200 });
var gelen = servis.ListTweetsOnHomeTimeline(new ListTweetsOnHomeTimelineOptions { Count = 200, MaxId = anasayfa.Last().Id });
foreach (var tweet in gelen)
{
tweetid.Items.Add(tweet.Id.ToString());
ListBox2.Items.Add(tweet.Text);
}
}
protected void Button1_Click(object sender, EventArgs e)
{
servis.Retweet(new RetweetOptions() { Id = long.Parse(tweetid.Items[ListBox2.SelectedIndex].ToString())});
String uyarı = "alert('Retweetlendi!');";
ClientScript.RegisterOnSubmitStatement(this.GetType(), "ConfirmSubmit", uyarı);
}
}
【问题讨论】:
-
几乎可以肯定是
tweetid.Items[ListBox2.SelectedIndex]。在将SelectedIndex用作索引器之前验证其值。 -
在我看来,在 Button1_Click 时可能未填充 tweetid。是 Page_Load 里面的 foreach 循环吗?
-
@BrandonSpilove 是的,它在 page_load 中。
-
@StuartLC 我应该怎么做。就像我说的,这段代码在 Windows 窗体应用程序中很好。
标签: c# asp.net tweetsharp