代码抛出System.InvalidOperationException

问题描述:

我想提交一个表单,并运行到500内部服务器错误。当我调试一块,是造成这个代码抛出System.InvalidOperationException:代码抛出System.InvalidOperationException

var description = _context.Malfunction.Single(d => d.Description == newReport.ReportDescsription).ToString(); 

这是我的描述VAR的jQuery:

$(document).ready(function() { 
     vm = { 
      movieIds: [], 
      ReportDescription: null 
     }; 
function applyChanges() { 
     vm.ReportDescription = document.getElementById("descriptionReport").value; 
     if (vm.ReportDescription == "") { 
      vm.ReportDescription = null; 
     } 
    } 

阿贾克斯后:

$.ajax({ 
url: "/api/Malfunctions", 
method: "post", 
data: vm 
}) 
+0

您可以发布异常详细信息吗?通过编辑你的问题来解释抛出的'InvalidOperationException'显示的信息。 –

+1

而不是单一的,你应该做FirstOrDefault()而不是ToString()你应该使用Convert.ToString(),这将处理空例外 – TechGirl

+0

@TetsuyaYamamoto将其更改为FirstOrDefault后,我得到空例外,其他信息:对象未将引用设置为对象的实例。 – IlirAs

var description = _context.Malfunction.Select(des => desc.Description).FirstOrDefault(d => d.Description == newReport.ReportDescsription); 
if(description != null) 
{ 
    var str = description.toString(); 
} 

在这里,您将首先验证数据是否返回,或者是否为空,如果不为null,则可以继续使用您的代码。

编辑:添加选择仅返回说明,假设故障具有更多列

+0

什么错误仍然存​​在,错误\t CS0029 \t无法隐式转换类型“test1.Models.Malfunction”到“字符串”警告在HomeController的检测\t CS0162可达代码 – IlirAs

+0

@IlirAs什么结果说明变量? – TechGirl

+0

它没有价值,因为代码根本没有生成 – IlirAs