Tag: 条件

在MVC5中使用Html.DisplayFor()的日期格式

在这篇文章中引用了答案,我添加了/ Views / Shared / DisplayTemplates并添加了一个名为ShortDateTime.cshtml的局部视图,如下所示: @model System.DateTime @Model.ToShortDateString() 当模型包含一个值时,它可以正常显示格式化的日期: @Html.DisplayFor(modelItem => item.BirthDate, “ShortDateTime”) 但是,如果返回null值,则抛出’System.InvalidOperationException’。 指示: {“传入字典的模型项为null,但此字典需要一个类型为’System.DateTime’的非空模型项。”} 我的第一个倾向是在局部视图中使用if语句,但似乎并不重要。 在不引用模板的情况下,空值的处理方式如下: @Html.DisplayFor(modelItem => item.BirthDate) 但原始的格式问题仍然存在。 当我尝试在视图中放置条件格式,如下所示,它不起作用,但我希望它只是一个语法的东西。 @Html.DisplayFor(modelItem => item.BirthDate == null) ? string.Empty : (modelItem => item.BirthDate, “ShortDateTime”)) 以上导致不同的’System.InvalidOperationException’: {“模板只能用于字段访问,属性访问,单维数组索引或单参数自定义索引器表达式。”} 那么,有没有办法在视图中进行条件格式化以仅从DateTime值生成日期?

什么是条件同步?

有人可以向我解释条件同步吗? 一个例子(最好是在C#中)也将非常受欢迎。

C#中的简写条件类似于”’关键字中的SQL’

在C#中有一种写简单的简写方法: public static bool IsAllowed(int userID) { return (userID == Personnel.JohnDoe || userID == Personnel.JaneDoe …); } 喜欢: public static bool IsAllowed(int userID) { return (userID in Personnel.JohnDoe, Personnel.JaneDoe …); } 我知道我也可以使用switch,但是我可能要编写大约50个这样的函数(将一个经典的ASP站点移植到ASP.NET),所以我想让它们尽可能短。

只使用’if-else’语句的’else’部分是否可以接受?

有时,我觉得检查所有条件是否都是真的更容易,但是只处理“其他”情况。 我想我有时会觉得更容易知道某些东西是有效的,并假设所有其他情况都无效。 例如,假设我们只在出现问题时才真正关心: object value = GetValueFromSomeAPIOrOtherMethod(); if((value != null) && (!string.IsNullOrEmpty(value.Prop)) && (possibleValues.Contains(value.prop))) { // All the conditions passed, but we don’t actually do anything } else { // Do my stuff here, like error handling } 或者我应该改变它: object value = GetValueFromSomeAPIOrOtherMethod(); if((value == null) || (string.IsNullOrEmpty(value.Prop)) || (!possibleValues.Contains(value.prop))) { // Do my stuff […]

SQL:如果存在记录列表,则返回“true”?

另一个标题可能是:检查是否存在多行? 使用SQL和C#的组合,如果列表中的所有产品都存在于表中,我希望方法返回true。 如果它可以在SQL中完成,那将是更好的选择。 我编写了一个方法,使用以下SQL返回是否存在单个productID : SELECT productID FROM Products WHERE ProductID = @productID 如果返回一行,则c#方法返回true,否则返回false。 现在我想知道我是否有一个产品ID清单(不是一个很大的清单,通常在20岁以下)。 如果所有产品ID都存在则如何编写将返回一行的查询,如果一个或多个产品ID不存在则如何不返回行? (Maybe something involving “IN” like: SELECT * FROM Products WHERE ProductID IN (‘1′, ’10’, ‘100’, ‘ABC’)) 编辑: 如何表达结果对我来说并不重要。 无论查询返回1还是0 ,空结果集还是非空结果集,true或false都无关紧要。 我更喜欢这样的答案:1)易于阅读和理解,2)高效 我想要将产品ID列表与SQL连接起来。 显然这会打开SQL注入代码(产品ID实际上是varchar 。在这种情况下,机会很小但仍然希望避免这种可能性)。 因此,如果有办法解决这个问题会更好。 使用SQL Server 2005。 产品ID是varchar

.NET项目中的条件引用,有可能摆脱警告吗?

我有两个SQLite程序集的引用,一个用于32位,一个用于64位,看起来像这样(这是一个试图摆脱警告的测试项目,不要挂在路径上) : True ..\..\LVK Libraries\SQLite3\version_1.0.65.0\64-bit\System.Data.SQLite.DLL True ..\..\LVK Libraries\SQLite3\version_1.0.65.0\32-bit\System.Data.SQLite.DLL 这会产生以下警告: Warning 1 The referenced component ‘System.Data.SQLite’ could not be found. 我有可能摆脱这个警告吗? 我开发时只考虑将项目配置为32位的一种方法,让构建机器在构建64位时修复引用,但这看起来有点尴尬,可能容易出错。 还有其他选择吗? 我想摆脱它的原因是警告显然被TeamCity收集并定期标记为我需要调查的东西,所以我想完全摆脱它。 编辑 :根据答案,我试过这个: … ..\..\LVK Libraries\SQLite3\version_1.0.65.0\32-bit … ..\..\LVK Libraries\SQLite3\version_1.0.65.0\32-bit … ..\..\LVK Libraries\SQLite3\version_1.0.65.0\64-bit … ..\..\LVK Libraries\SQLite3\version_1.0.65.0\64-bit 然后在我的参考: False $(SqlitePath)\System.Data.SQLite.DLL 这摆脱了警告,但这是正确的吗?

C#If语句中条件的执行顺序

下面有两个if语句,它们使用逻辑运算符有多个条件。 逻辑上两者都相同,但检查顺序不同。 第一个工作,第二个工作失败。 我引用了MSDN来检查是否定义了执行条件的顺序; 但我找不到。 考虑具有&&作为逻辑运算符的多重检查条件。 是否保证始终检查第一个条件,如果不满足,则不会检查第二个条件? 我曾经使用方法1,它运作良好。 寻找certificate其使用的MSDN参考资料。 UPDATE 参考“短路”评估 码 List employees = null; if (employees != null && employees.Count > 0) { string theEmployee = employees[0]; } if (employees.Count > 0 && employees != null) { string theEmployee = employees[0]; }

如果需要,显示WPF工具提示

我在一个有限大小的控件中有一个TextBlock。 如果文本太长而无法放入控件中,我想显示带有全文的工具提示。 这是您从许多应用程序中肯定知道的经典行为。 我尝试使用Converter将TextBlock宽度转换为Tooltip的Visibility。 问题是在转换器中: public object Convert(object value, … ‘value’是DataBound项。 我希望’value’成为TextBlock,观察它的宽度,并将它与GridViewColumn.Width进行比较。

XAML条件编译

有没有一种简单的方法可以在我的xaml文件中使用我用于c#代码的相同条件编译符号?