我可以在下面的代码中传递if语句吗?如果没有,还有其他选择吗?

本文关键字:如果没有 选择 其他 语句 代码 在下面 if 我可以 | 更新日期: 2023-09-27 18:07:02

<%#String.Format("~/storefront.aspx?CatalogID={0}&ProductID={1}", Eval("CatalogID"), Eval("ProductID"))%>

我想做的是:

 NavigateUrl='<%#String.Format("~/storefront.aspx?CatalogID={0}&ProductID={1}",Eval("CatalogID"), (Eval("CatalogID")=="856" ? Eval("ProductID") : Eval("CustItem")))%>

我正试图从页面链接回项目…除目录号856项外,我已为所有项目办理了上述手续。目录id =856&ProductID=AVE05418这个例子是一个从目录856,问题是,是在url中传递的ProductID实际上是一个名为CustItem的变量,所以我试图传递CustItem在ProductID的地方当目录是856

Thank you

我可以在下面的代码中传递if语句吗?如果没有,还有其他选择吗?

您可以尝试这样做:

Eval("CatalogID") == 856 ? Eval("CustItem") : Eval("ProductID")

编辑

NavigateUrl='<%#String.Format("~/storefront.aspx?CatalogID={0}&ProductID={1}",Eval("CatalogID"), (Eval("CatalogID").ToString() == "856" ? Eval("CustItem") : Eval("ProductID")))%>'

可以使用三元操作符

Eval((CatalogID==856) ? "CustItem" : "ProductID")

比这更好的方法是修复那些进入数据库的坏数据,这样你就可以从一开始就避免这种丑陋。

谁能建议如何处理给定的情况?

我会在数据库层修复它。数据完全错了。

如果你必须破解它,不要改变任何可见的外部服务器(例如一个web服务接口或URL)。否则,有人可能会利用你的变通来破坏你的数据。

允许Eval在你的URL只是乞求问题。

相关文章: