小编Hob*_*eff的帖子

“这里不为空”

我有一个方法不断地向我发出警告“此处不为空”。

        StockHolding stockHoldingFiltered = new StockHolding();
        List<StockHolding> stockHoldingsFiltered = new List<StockHolding>();
        IReadOnlyList<StockHolding> stockHoldings = this.GetAll();

        stockHoldingsFiltered = stockHoldings.Where(stckhold =>
            stckhold.PortfolioId.Equals(portfolioId) &&
            stckhold.StockSymbol.Equals(stockSymbol)).ToList();

        if(stockHoldingsFiltered != null)
            stockHoldingFiltered = stockHoldingsFiltered.FirstOrDefault();

        return stockHoldingFiltered;
Run Code Online (Sandbox Code Playgroud)

警告:“stockHoldingFiltered”此处不为空。CS8600:将 null 文字或可能的 null 值转换为不可为 null 的类型。

我无法让这个警告消失。有没有人遇到过这个问题并且能够解决这个警告?

c# asp.net null visual-studio c#-4.0

4
推荐指数
1
解决办法
2万
查看次数

ModelState 将验证状态显示为对于不需要的字段无效

我正在使用 Razor 页面。我的模型中有两个不需要的字段:

`    public class OrderModel : EntityModel, IValidatableObject
    {        
        public string UserId { get; set; } 
        public int PortfolioId { get; set; }
        public int StockId { get; set; }
        public int StockHoldingId { get; set; }
        public string StockSymbol { get; set; } 

        [Required]
        [DisplayName("Shares Traded")]
        public int QuantityTraded { get; set; }`
Run Code Online (Sandbox Code Playgroud)

这两个字段是 UserId 和 StockSymbol。我有表单的以下部分,其中 UserId 和 StockSymbol 不存在,因此为 null 或为空,这是我故意这样做的:


`        <div>
            Quantity: <input type="number" min="0" asp-for="@Model.Order.QuantityTraded" />
            <input type="hidden" asp-for="@Model.Stock.Id" />
            <input type="hidden" …
Run Code Online (Sandbox Code Playgroud)

.net validation model model-binding razor-pages

3
推荐指数
1
解决办法
872
查看次数