-1
我的觀點看起來像MVC4 EF5 - )的Linq類SqlQuery(後Ajax調用錯誤
<form onsubmit="return Filter();" class="my-form">
<input type="submit" value="Filter!" />
</form>
具有以下Ajax調用
$.ajax({
url: "/Report/Filter/",
cache: false,
type: "POST",
dataType: "html"
data: { filterOption: selectedFilterOption, filterOptionValue: selectedFilterValue },
success: function (data) {
$('#filterResultDiv').html(data);
},
error: function (reponse) {
alert("error : " + reponse);
}
});
調用該控制器的方法
[HttpPost]
public ActionResult Filter(string filterOption, string filterOptionValue)
{
var filterCol = (FilterColumnName)System.Enum.Parse(typeof(FilterColumnName), filterOption);
var singleFilter = new SingleFilter(filterCol, filterOptionValue);
var entries = singleFilter.Filter();
...
return PartialView("\\Places\\PartialReport", reportVM);
}
和在調試此方法時發生錯誤
public List<FilteredRow> Filter()
{
List<FilteredRow> result = new List<FilteredRow>();
var ent = new Entities();
var query = "SELECT * FROM V_Data WHERE " + this.GetFilterColumnName() + "= @p0";
var dbObjects = ent.V_Data.SqlQuery(query, this.Value).ToList(); //<---- the ajax error function gets called after this line :(
foreach (var obj in dbObjects)
{
var entry = new FilteredRow(obj);
result.Add(entry);
}
return result;
}
因此在var dbObjects = ent.V_Data.SqlQuery(query, this.Value).ToList();
之後,alert函數被調用並顯示「error:[object Object]」...但Filter()方法也會將適量的過濾實體返回給我的控制器方法。部分視圖很快顯示,然後重新加載頁面。我錯過了什麼?