Я использую MVC5 с данными Ado.net. У меня есть метод в контроллере. Я хотел бы использовать вызов ajax для отправки данных формы в этот метод. я хочу вызвать этот метод в своем действии создания при создании новых записей, поэтому я могу просто передать коллекцию данных в datatable для создания нескольких записей одновременно.
Вот так выглядит мой метод
DataTable dt = new DataTable();
public void InsertRecord(FormCollection collection)
{
if (dt.Columns.Count == 0) // if no columns defined
{
//create columns
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Length", typeof(double));
dt.Columns.Add("Breadth ", typeof(double));
dt.Columns.Add("Height ", typeof(double));.
dt.Columns.Add("IsMeasured ", typeof(bool));
}
if (collection != null)
{
DataRow row = dt.NewRow();
row.SetField<string>("Name", collection["Name"]);
row.SetField<double>("Length", Convert.ToDouble(collection["Length"]));
row.SetField<double>("Breadth", Convert.ToDouble(collection["Breadth"]));
row.SetField<double>("Height", Convert.ToDouble(collection["Height"]));
row.SetField<bool>("IsMeasured", Convert.ToBoolean(collection["IsMeasured"]));
dt.Rows.Add(row);
}
}
мой вызов ajax выглядит так:
function AddItem() {
var inputs = $('#DetailCard input, #DetailCard select').serialize();
$.ajax({
type: 'POST',
url: '/CreateRecords/InsertRecord',
data: inputs,
dataType: 'json',
success: function (info) {
if (info.result == "Error") {
alert(info.message);
}
}
});
};
моя кнопка отправки:
<input type="button" value="Add" onclick="AddItem()" />
Когда я запускаю проект, я вижу, что первые два столбца поля строки данных (Имя и Длина) заполнены (заполнены). Однако, когда программа попадает в столбец «Ширина», она вылетает и выдает ошибку ( System.ArgumentException ... «Ширина» не принадлежит таблице ).
Я дважды проверил все, но не вижу, что мне не хватает.