#c# #asp.net-mvc #post
#c# #asp.net-mvc #Публикация
Вопрос:
Я хочу опубликовать несколько элементов с одинаковыми именами на сервере, как прочитать список в коллекцию, имена имен элементов управления отформатированы в специальном формате, найденном в блоге, но по-прежнему не могут получить доступ к данным.
<input type="text" class="inputs" name="[1].SpecificationTitle" />
<input type="text" class="inputs" name="[1].SpecificationDescription" />
<input type="text" class="inputs" name="[2].SpecificationTitle" />
<input type="text" class="inputs" name="[2].SpecificationDescription" />
Чтение
[HttpPost]
public ActionResult addBuyOnlinepostA(ICollection<SpecificationDetails> SpecificationDetails, FormCollection Collection)
{
}
public class SpecificationDetails
{
public string SpecificationTitle { get; set; }
public string SpecificationDescription { get; set; }
}
Комментарии:
1. Индексаторы должны начинаться с нуля и быть последовательными) (и удалить бессмысленный
FormCollection Collection
параметр)2. @StephenMuecke Я проверю это позже, я использовал временный метод, чтобы исправить это.
Ответ №1:
Что, если вы используете jquery / Ajax для получения данных, а затем отправляете их на сервер.
<script>
$(document).ready(function () {
$("#submit").click(function () {
data = $(".inputs").map(function () { return $(this).val();});
var data2 = data.toArray();
alert(data2);
$.ajax({
type: "POST",
url: "@Url.Action("Action", "Controller")",
traditional: true,
data: {Data:data2 },
success: successFunc,
error: errorFunc
});
function successFunc(data) {
alert("success");
}
function errorFunc(data) {
alert("error");
}
});
});
<input type="text" class="inputs" name="[1].SpecificationTitle" />
<input type="text" class="inputs" name="[1].SpecificationDescription" />
<input type="text" class="inputs" name="[2].SpecificationTitle" />
<input type="text" class="inputs" name="[2].SpecificationDescription" />
<input type="button" id="submit" value="submit"/>`
Комментарии:
1. @Sudhashnu Я хочу написать как можно меньше кода, мой метод исключил бы проверку на стороне сервера и т. Д. С меньшими усилиями