В представлении сгенерируйте несколько именованных полей (не id
, поскольку id
должно быть уникальным для каждого поля), отметив использование Name
, а не name
:
@foreach (var item in Model.SomeDictionary)
{
@Html.TextBoxFor(modelItem => item.Value.SomeString, new { Name = "someString[]" })
}
Затем извлеките значения поля ввода, используя jQuery, so :
var myArrayValues = $('input[name="someString[]"]').map(function () { return $(this).val(); }).get();
Вы можете использовать это непосредственно в jQuery / AJAX следующим образом:
$.ajax({
type: "POST",
url: "/MyController/MyAction",
dataType: 'json',
data: {
someStrings: $('input[name="someString[]"]').map(function () { return $(this).val(); }).get(),
someDates: $('input[name="someDate[]"]').map(function () { return $(this).val(); }).get(),
Затем в действии контроллера в MVC:
[HttpPost]
public JsonResult MyAction(string[] someStrings, DateTime[] someDates...