【问题标题】:i want to get data from controller to view can you help me我想从控制器获取数据以查看你能帮我吗
【发布时间】:2021-10-15 04:18:37
【问题描述】:
   public JsonResult GetItemCode(string Code)
        {
            double Category = objFatchXEntities.ItemCardUAE.Single(s => s.Code == Code).Price;
            
            return Json(Category, JsonRequestBehavior.AllowGet);
                }

错误 CS0266 无法隐式转换类型“double?” “加倍”。存在显式转换(您是否缺少演员表?)

【问题讨论】:

    标签: c# .net asp.net-mvc asp.net-mvc-4 c#-4.0


    【解决方案1】:

    这是因为您的查询返回 double?。您可以更改类别的类型,但最好使用 var

    var category = objFatchXEntities.....
     return Json(category, JsonRequestBehavior.AllowGet);
    

    但检查 null 总是更好的主意

    var category = objFatchXEntities.ItemCardUAE.FirstOrDefault(s => s.Code == Code);
    
    if (category == null || category.Price==null) return null;
    
     return Json(category.Price, JsonRequestBehavior.AllowGet);
    

    【讨论】:

    • 显示新错误 System.NullReferenceException: '对象引用未设置为对象的实例。'
    • @AhmedHamed 错误在哪里?我希望 category=null 它应该返回 null
    • 我尝试 category=null 没有得到价格所以我尝试使用 var category = objFatchXEntities..... return Json(category, JsonRequestBehavior.AllowGet);
    【解决方案2】:

    你声明了一个双精度变量,它需要一个双精度而不是一个可以为空的双精度。您可以获取double? 的值,这样您就有了这样的匹配类型

    double Category = objFatchXEntities.ItemCardUAE.Single(s => s.Code == Code).Price.Value;
    

    但问题在于,如果价格在任何时候为空,您都会收到 NullReference 错误。您可以在执行此类操作之前检查 Price 是否有价值

    if (objFatchXEntities.ItemCardUAE.Single(s => s.Code == Code).Price.HasValue)
    {
        ... do something 
    } 
    

    【讨论】:

      猜你喜欢
      • 2021-02-21
      • 1970-01-01
      • 2011-07-15
      • 2020-12-30
      • 1970-01-01
      • 2023-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多