2 つの ajax 呼び出しを実行する 2 つの関数があります。1 つの関数を呼び出し、他の関数を呼び出さない場合、コードは正常に実行されます。しかし、両方を同時に呼び出すと、2 つの内部サーバー エラー メッセージが表示されます。私が推測する機能ごとに1つ。
これは私のコードです:
$(document).ready(function(){
CategoryChangeState(@Model.CatId , subcategoryId);
SubategoryChangeState(@Model.SubcatId);
})
public ActionResult ReturnListOfSubcategories( FormCollection collection ) {
string categoryId = collection["result"];
var subcategories = ProductManagerHelperClass.ReturnSubcategories(categoryId);
return Json(subcategories);
}
public ActionResult ReturnListOfBrands() {
var brands = ProductManagerHelperClass.ReturnBrands();
return Json(brands);
}
function CategoryChangeState(value , editPage) {
.....
$.ajax({
type: "POST",
url: "/ProductManager/ReturnListOfSubcategories",
data: { result: value },
datatype: "json",
error: function (jqXHR, textStatus, errorThrown) {
alert(errorThrown);
}
});
...
}
function SubategoryChangeState(value) {
....
$.ajax({
type: "POST",
url: "/ProductManager/ReturnListOfBrands",
datatype: "json",
error: function (jqXHR, textStatus, errorThrown) {
alert(errorThrown);
}
});
....
}
これらのエラーが発生する理由と解決方法を教えてください。
編集
デバッグ中に、コードのこの部分で次のことがわかりました。
public static Dictionary<string , string> ReturnSubcategories(string categoryId)
{
int catId = int.Parse(categoryId);
var subcategories = (from s in dataContext.SubCategories
where s.CatId == catId
select new
{
s.SubCatId,
s.SubCatName
}).ToDictionary(x => x.SubCatId.ToString(), x => x.SubCatName);
return subcategories;
}
linq クエリは例外をスローします。
InvalidOperationException ExecuteReader requires an open and available Connection. The connection's current state is closed.
繰り返しますが、この例外は、両方の関数を呼び出した場合にのみスローされます