Добрый день,
Я в своем уме и знаю, что, вероятно, мне не хватает чего-то простого. После поиска и поиска я не могу найти решение, которое мне подходит. Моя проблема в том, что я пытаюсь передать информацию из полей ввода через AJAX в контроллер, используя JSON.
Это код для моей C# модели
public partial class EgInput
{
public string DisplayId { get; set; }
public string EgUid { get; set; }
public double Quantity { get; set; }
public string Quality { get; set; }
public string Required { get; set; }
public string MaxAmount{ get; set; }
}
Это код для моего C# действия контроллера
public String SaveTest(EgInput obj)
{
Debug.WriteLine("Uid Value: "+ obj.DisplayId);
return (obj.DisplayId);
}
Ниже приведены поля ввода
<input asp-for="DisplayId" class="form-control" />
<span asp-validation-for="DisplayId" class="text-danger"></span>
<input asp-for="EgUid" class="form-control" />
<span asp-validation-for="EgUid" class="text-danger"></span>
<table>
<tr id="eg_row">
<td>
<input asp-for="Quantity" class="form-control" />
<span asp-validation-for="Quantity" class="text-danger"></span>
</td>
<td>
<input asp-for="Quality" class="form-control" />
<span asp-validation-for="Quality" class="text-danger"></span>
</td>
<td>
<input asp-for="Required" class="form-control" />
<span asp-validation-for="Required" class="text-danger"></span>
</td>
<td>
<input asp-for="MaxAmount" class="form-control" />
<span asp-validation-for="MaxAmount" class="text-danger"></span>
</td>
</tr>
</table>
<button type="button" id="save_test">Save</button>
Это JavaScript Я выполняю.
$('#save_test').on("click", function () {
$("tr").each(function () {
if ($(this).is("#eg_row")) {
var did = $("#DisplayId").val();
var eid = $("#EgUid").val();
var quantity = $(this).find("#Quantity").val();
var quality = $(this).find("#Quality").val();
var req = $(this).find("#Required").val();
var max = $(this).find("#MaxAmount").val();
var obj = JSON.stringify({
"DisplayId": did,
"EgUid": eid,
"Quantity": quantity,
"Quality": quality,
"Required": req,
"MaxAmount": max
});
console.log("clicked");
$.ajax({
type: "POST",
dataType: "json",
data: obj,
contentType: 'application/json',
url: '/Index/SaveTest',
success: function (msg) {
alert(msg);
}
});
}
});
});
У меня консоль зарегистрировала массив JSON, чтобы убедиться, что это действительно значения, извлеченные из полей. Я проверил, что вызывается правильное действие в контроллере, и изменил его возврат на сообщение, чтобы узнать, что оно было успешно обработано. Использование функции is () в C# говорит, что объект действительно соответствует типу. Однако при использовании консоли отладки для проверки информации в объекте значения всегда равны нулю. Заранее благодарим за любую оказанную помощь.