Вы можете получить все значения любого элемента управления формы или элементов управления, которые вы хотите в Частичной обратной передаче.Это тривиальный ответ, но на первый взгляд интуитивно не очевидный.Возможно, именно поэтому ASP.net мертв.
Помните, что параметры
__doPostback(string controlId,string param)
являются строками, а методы ASP.net
Request.Params.Get("__EVENTTARGET"); // id
Request.Params.Get("__EVENTTARGET"); // parameter
возвращают строки.
Поэтому простой ответ таков:
Создайте объект javascript с парами значений ключей всех ваших элементов формы, которые вы хотите отправить обратно в свой партиал.
Стригируйте этот объект и передайте его как второй параметр вашего вызова __doPostBack.
На стороне сервера вы просто изменяете этот процесс, чтобы извлечь свой объект и все значения формы, которые вам нужны.
Например:
var strigifiedObject = JSON.stringify(myFormObject);
var id = "partialPostback";
__doPostBack(id, strigifiedObject);
... между тем на стороне сервера
string id = Request.Params.Get("__EVENTTARGET");
string param = Request.Params.Get("__EVENTARGUMENT");
if (id == "partialPostback") {
List<MyObj> formVals = new JavaScriptSerializer().Deserialize<List<MyObj>>>(param);
}