我已經在.NET中定義了一個對象類型,我想在列表<>中作爲ASP.NET MVC操作方法的輸入接收該對象類型?如何將對象列表傳遞給使用jQuery的ASP.NET MVC操作?
這裏是我試圖接收的操作方法和類。
public class WhereClause
{
public string ColumnInformation { get; set; }
public string WhereValue { get; set; }
public string AndOr { get; set; }
public string Comparer { get; set; }
}
public ActionResult Grid(string query, int skip = 0, int take = 50, List<WhereClause> whereClauses = null)
{
GridViewModel gvm = new GridViewModel();
gvm.Query = query;
而且這裏是我從一組使用jQuery錶行建立的集合,然後調用jQuery的阿賈克斯()方法中的JavaScript。
var whereClauses = [];
// Iterate over every row in the table and pull the values fromthe cells.
divQueryWidget.find('.tblWhereClauses tr').each(function (x, y) {
var tds = $(y).find('td');
var columnInformation = $(tds[0]).html();
var whereValue = $(tds[1]).html();
var andOr = $(tds[2]).html();
var comparer = $(tds[4]).html();
// Create a whereClause object
var whereClause = {};
whereClause.ColumnInformation = columnInformation;
whereClause.WhereValue = whereValue;
whereClause.AndOr = andOr;
whereClause.Comparer = comparer;
whereClauses.push({
ColumnInformation: columnInformation,
WhereValue: whereValue,
AndOr: andOr,
Comparer: comparer
});
});
//divQueryWidget.find('#queryResultsGrid').
$.ajax({
type: 'GET',
url: '<%= Url.Action("Grid", "Query") %>',
dataType: 'html',
data: { query: divQueryWidget.find('#activeQuery').val(), whereClauses: whereClauses },
success: function (data, textStatus, XMLHttpRequest) { divQueryWidget.find('#queryResultsGrid').append(data); divQueryWidget.find('.loading').css('visibility', 'hidden'); }
});
這裏是事情變得有趣的地方。調用javascript時,表中有兩行應該傳遞給MVC操作,請注意,在調試代碼時,如何在列表中創建兩個對象,但其屬性未填充。
我在做什麼錯的是我的防止Javascript對象被轉換成.NET列表<>類型?我應該使用數組嗎?我需要將某些東西標記爲可序列化嗎?