Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我可以在下面的代码中传递if语句吗?如果没有,还有其他选择吗?_C#_Asp.net - Fatal编程技术网

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

C# 我可以在下面的代码中传递if语句吗?如果没有,还有其他选择吗?,c#,asp.net,C#,Asp.net,我想做的是: <%#String.Format("~/storefront.aspx?CatalogID={0}&ProductID={1}", Eval("CatalogID"), Eval("ProductID"))%> NavigateUrl= 我正在尝试从页面链接回该项目。。除了catalogid 856中的项目外,我已经为每个项目完成了这项工作…url看起来像:storefront.aspx?catalogid=856&ProductID=AVE05418这是来

我想做的是:

<%#String.Format("~/storefront.aspx?CatalogID={0}&ProductID={1}", Eval("CatalogID"), Eval("ProductID"))%>
NavigateUrl=
我正在尝试从页面链接回该项目。。除了catalogid 856中的项目外,我已经为每个项目完成了这项工作…url看起来像:storefront.aspx?catalogid=856&ProductID=AVE05418这是来自Catalog856的一个示例,问题是,url中传递的productid实际上是一个名为CustItem的变量,所以当目录为856时,我试图将CustItem传递给productid


谢谢你

你可以试试这样的东西:

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

Eval("CatalogID") == 856 ? Eval("CustItem") : Eval("ProductID")
NavigateUrl=''
有人能建议如何处理这种情况吗


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

如果您必须绕过它,请不要更改服务器外部可见的任何内容(例如web服务接口或URL)。否则,有人可能会利用您的工作环境来破坏您的数据

允许在URL中使用
Eval
只是在乞求解决问题。

您可以使用


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

我会在数据库层修复它。数据完全错了。如果你必须绕过它,在web应用程序中绕过它,而不是以任何在服务器外部可见的方式(例如web服务接口或URL)。@Joe W:如果你能详细说明这与你正在构建的链接的关系,我将编辑我的答案,使其更具体。好的。。我正在尝试从页面链接回该项目。。除了catalogid 856中的项目外,我已经为每个项目完成了这项工作…url看起来像:storefront.aspx?catalogid=856&ProductID=AVE05418这是来自Catalog856的一个示例,问题是,url中传递的productid实际上是一个名为CustItem的变量,所以当目录为856时,我试图将CustItem传递到productid的位置,我希望这能更好地解释这一点……好吧,我发现我缺少了一些东西,这离结束这一点有点近了,我缺少了一个)。。现在我有了:NavigateUrl='。。。但它并没有做测试,它一直是第一个测试,因为在这一部分中,我有Eval(“ProductID”):Eval(“CustItem”)…它使用ProductID,但如果我切换它们,它将使用CustItem。。有什么建议吗?@Joe W:做Eval(“CatalogID”).ToString()=“856”或Convert.ToInt32(Eval(“CatalogID”)=“856”。哈哈,这些小东西你都看过了!再次感谢你,詹姆斯!
NavigateUrl='<%#String.Format("~/storefront.aspx?CatalogID={0}&ProductID={1}",Eval("CatalogID"), (Eval("CatalogID").ToString() == "856" ? Eval("CustItem") : Eval("ProductID")))%>'
Eval((CatalogID==856) ? "CustItem" : "ProductID")