当我使用下拉列表附加特定数据源时,我遇到此错误。与所有其他表/数据源一起工作正常。 我没有使用javascript / jquery对dropdownlist进行任何更改(因为它与除当前之外的所有其他数据源一起工作正常)
错误:
Invalid postback or callback argument. Event validation is
在配置中启用 或<%@ Page EnableEventValidation =“true”%>在一个页面中。为了安全 目的,此功能验证回发或回调的参数 事件源自最初呈现的服务器控件 他们。如果数据有效且预期,请使用 ClientScriptManager.RegisterForEventValidation方法 注册回发或回调数据以进行验证。
我的函数从xml文件中获取值:
public List<ProductReviewmaster> ConvertRssXDocToReviews(XDocument xdoc)
{
List<ProductReviewmaster> nl = new List<ProductReviewmaster>();
if (xdoc != null)
{
var res = from rs in xdoc.Descendants("item")
select new ProductReviewmaster()
{
Title = rs.Element("title").Value,
ShortHeadLine = rs.Element("shortheadline").Value,
Link = rs.Element("link").Value,
Reviewid = rs.Element("guid").Value ,
//Pubdate = Convert.ToDateTime( rs.Element("pubdate").Value),
Image = rs.Element("storyimage").Value,
Dateline = rs.Element("dateline").Value,
Excerpt = rs.Element("excerpt").Value,
Tags = rs.Element("tags").Value,
ProductId = rs.Attribute("productid").Value.ToInt64()
};
foreach (var item in res)
{
nl.Add(item);
}
}
return nl;
}
这就是我将其与我的下拉列表绑定的方式:
ddlReview.DataSource = prmf.GetReviewByCategoryKey(categoryid);
ddlReview.DataValueField = "Reviewid";
ddlReview.DataTextField = "Title";
ddlReview.DataBind();
ddlReview.Items.Insert(0, new ListItem("---Select---"));
当我使用任何其他数据源(非xml)绑定相同的下拉列表时,它的工作正常..但是当我使用此数据源执行此操作时,它会抛出上述错误。
我的xml就像:
<rss version="2.0">
<channel>
<title>
</title>
<link>
</link>
<language>en</language>
<lastBuildDate>
August 3, 2011 3:57 PM
</lastBuildDate>
<image>
<url></url>
<link>
</link>
</image>
<items>
<item productid="">
<title><![CDATA[This is new test review]]></title>
<shortheadline><![CDATA[]]></shortheadline>
<link>
</link>
<permaLink>
<web>
</web>
</permaLink>
<guid isPermaLink="false">
29527
</guid>
<pubDate>
August 2, 2011 1:56 PM
</pubDate>
<MobileText></MobileText>
<storyimage><![CDATA[ges/apple-appstore.jpg]]></storyimage>
<categories><![CDATA[mobile]]></categories>
<dateline><![CDATA[]]></dateline>
<excerpt><![CDATA[isational structure for its operations in India and South Asia with effetransformational business...]]></excerpt>
<tags><![CDATA[mobile, phone]]></tags>
<contenttype><![CDATA[Review]]></contenttype>
</item>
</items>
<description></description>
</channel>
</rss>
成功检索数据并在下拉列表中显示,但当我从中选择任何项目时(选择的索引已更改),则会显示此消息...
由于
答案 0 :(得分:1)
当您的输入元素(包括下拉列表)包含其中任何一个字符'&lt;'时,通常会出现此错误或'&gt;'。
您是否尝试过对这些值进行编码?
答案 1 :(得分:1)
最后我解决了这个问题...... 在使用LINQ时,我只使用了Trim()及其完成......:)
var res = from rs in xdoc.Descendants("item")
select new ProductReviewmaster()
{
Title = rs.Element("title").Value.Trim(),
ShortHeadLine = rs.Element("shortheadline").Value.Trim(),
Link = rs.Element("link").Value.Trim(),
Reviewid = rs.Element("guid").Value.Trim() ,
//Pubdate = Convert.ToDateTime( rs.Element("pubdate").Value),
Image = rs.Element("storyimage").Value.Trim(),
Dateline = rs.Element("dateline").Value.Trim(),
Excerpt = rs.Element("excerpt").Value.Trim(),
Tags = rs.Element("tags").Value.Trim(),
ProductId = rs.Attribute("productid").Value.ToInt64()
};
所以我的最后结论是我必须有空白值的问题......