2017-09-14 69 views
0

我想提交一個表單,並運行到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

回答

0
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

相關問題