在许多地方我必须将焦点设置在可见的字段上,并且我可以根据不同的场景显示多个字段.例如:
<input id="A">
<input id="B">
Run Code Online (Sandbox Code Playgroud)
情况是这两个输入中的任何一个都是可见的,我必须将注意力放在那里.
我现在在做什么:
if ($('#A').is(":visible")) {
$('#A').focus();
} else if ($('#B').is(":visible")) {
$('#B').focus();
}
Run Code Online (Sandbox Code Playgroud)
我觉得可以有更好的优化方式来做到这一点.我想删除这个if if if语句.
建议?
我正在提取用户代理:
string userAgent = HttpContext.Current.Request.UserAgent;
Run Code Online (Sandbox Code Playgroud)
UserAgent是否有可能为null?是否只能用于机器人或任何合法的用户/设备/客户端/浏览器?
我们想从NameValueCollection中删除几个键,但我们不确定它们是否确实存在于其中.
如果我尝试删除不在NameValueCollection中的key1,则没有异常/副作用:
nameValues.Remove("key1");
Run Code Online (Sandbox Code Playgroud)
但是什么是理想的方法,我们应该在删除之前检查密钥是否存在?
SET @StartDate = NULL,
@InitialLoopValue=NULL,
@FinalLoopValue = NULL, @RootId = NULL, @MakeId = NULL, @CityId = NULL,
@CountOfCarsUpdated = NULL, @Url = NULL, @MakeName = NULL, @RootName = NULL,
@CityName = NULL, @Content = NULL, @SellInquiryId = NULL, @SellerType = NULL,@imei = NULL;
Run Code Online (Sandbox Code Playgroud)
我有这么多变量,我得到这个错误.
但是,当我SET单独为每个默认分配放置它的工作正常但这太冗长了.
我该如何纠正?
public bool IsDefault { get; set; }
RuleFor(stockImage => stockImage.IsDefault).NotNull();
我有这个规则,IsDefaultboolean属性不应该为null.问题是当客户端在命中api时没有传递此字段,IsDefault将默认布尔属性设置为false并且不提供任何错误,例如"此字段是必需的".
如何根据需要将此字段设为"true"或"false"作为其唯一有效输入?
我试过的一个解决方案就是:
RuleFor(stockImage => stockImage.IsDefault).NotEmpty();
这个问题是它在IsDefault"假" 时给出验证错误,这不是预期的用例.
我有一个C#WebApi项目,并且正在使用FluentValidation.WebApi包来验证客户端输入。
下面是我的模型类代码,它具有名为“ IsPremium”的C#属性。对于所有客户端,此属性均具有json名称“ isLuxury”。
[Serializable, JsonObject, Validator(typeof(ProductValidator))]
public class Product
{
[JsonProperty("isLuxury")]
public bool? IsPremium { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的验证器类如下所示:
public class ProductValidator : AbstractValidator<Product>
{
public ProductValidator()
{
RuleFor(product => product.isPremium).NotNull();
}
}
Run Code Online (Sandbox Code Playgroud)
所以对于这样的请求: http:// localhost:52664 / api / product
请求正文:{“ isLuxury”:“”}
我收到以下错误:
{
"Message": "The request is invalid.",
"ModelState": {
"product.isPremium": [
"'is Premium' must not be empty."
]
}
}
Run Code Online (Sandbox Code Playgroud)
流利的选择了C#属性名称,这对客户端没有意义,因为它知道它是“ isLuxury”。如何强制Fluent从json属性而不是c#属性中选择名称,以提供更好的验证,例如“'isLuxury'不能为空。”?
如果不可能的话,我将不得不重命名我所有的C#属性,使其具有与公开给所有客户端的json相同的名称。请提出您是否还有其他更好的方法来解决此问题。
我想将十进制转换为逗号分隔的字符串为INR货币
1.59 => 1.59
11.59 => 11.59
111.59 => 111.59
1111.59 => 1,111.59
11111.59 => 11,111.59
111111.59 => 1,11,111.59
1111111.59 => 11,11,111.59
11111111.59 => 1,11,11,111.59
111111111.59 => 11,11,11,111.59
1111111111.59 => 111,11,11,111.59
Run Code Online (Sandbox Code Playgroud)
我们怎样才能做到这一点?
我想将特定号码移到此列表的顶部.
int numberToBeMovedOnTop = 4;
List<int> lst = new List<int>(){1, 2, 3, 4, 5, 5, 4, 7, 9, 4, 2, 1};
List<int> lstOdd = lst.FindAll(l => l == numberToBeMovedOnTop);
lstOdd.AddRange(lst.FindAll(l => l != numberToBeMovedOnTop));
Run Code Online (Sandbox Code Playgroud)
numberToBeMovedOnTop变量在哪里?
这给了我想要的结果,但对此更好的解决方案?我可以迭代列表一次并交换第numberToBeMovedOnTop一个元素的第一个出现,第二numberToBeMovedOnTop个元素的第二个出现,依此类推.但是这可以通过一些内置的C#函数来完成,而无需迭代列表两次吗?