Publicar colecciones utilizando vistas parciales y Microsoft Ajax en ASP.NET MVC2
-
28-10-2019 - |
Pregunta
Estoy usando la vista parcial con AJAX.BEGINFORM. En esa página de vista parcial, tengo el siguiente marcadoEDITAR
<%
using (Ajax.BeginForm("ManageDataSources", "DataSources", saveAjaxOptions))
{
%>....
<td>
<%: Html.Hidden("DataSource_Id", dataSource.Id, new { @class = "DataSource_Id" })%>
<%: Html.TextBox("DataSource_Name", dataSource.Name, new { @class = "DataSource_Name" })%>
</td>
<tr class="queryParameters" style="display: block">
<td colspan="2" align="center">
<input id="Text1" name="parametername" type="text" />
<input id="Text2" name="parametervalue" type="text" />
<input id="Text3" name="parametername" type="text" />
<input id="Text4" name="parametervalue" type="text" />
<input id="Text5" name="parametername" type="text" />
<input id="Text6" name="parametervalue" type="text" />
<input id="Text7" name="parametername" type="text" />
<input id="Text8" name="parametervalue" type="text" />
<input id="Text9" name="parametername" type="text" />
<input id="Text10" name="parametervalue" type="text" />
</td>
</tr>
y en el controlador, tengo este modelo para la representación de los datos
public class DataSourceViewModel
{
public string DataSource_Id { get; set; }
public string DataSource_Name { get; set; }
public List<SCParams> parameters { get; set; }
}
public class SCParams
{
public string parametername { get; set; }
public string parametervalue { get; set; }
}
EDITAR
public ActionResult ManageDataSources(DataSourceViewModel dsvm)
{
return PartialView("ManageDataSources");
}
Cuando publico los datos, estos valores de parámetros y parámetros no están en absoluto a la lista de objetos. Cómo hago esto. Estoy usando Microsoft Ajax y quiero hacer esto sin usar otros complementos. Por favor sugiera la forma correcta.
EDITAR
Estos son los datos en el encabezado tomados de Chrome
DataSource_Id:
DataSource_Name:Name
parametername:a
parametervalue:1
parametername:q
parametervalue:2
parametername:z
parametervalue:3
parametername:s
parametervalue:4
parametername:w
parametervalue:5
x:15
y:12
Solución
Lo que entiendo que tienes una estructura de detalles maestros y quieres recibir el controlador. si ese es el caso. Luego hay dos posibilidades, ya sea su porción de detalle, tiene una porción de detalle de longitud variable o porción de detalle de longitud fija. Puedes seguir la publicación aquí para longitud variable y longitud fija. Para una longitud fija también puede seguir aquí.
Recibirá el modelo en la siguiente firma
public ActionResult ManageDataSources(DataSourceViewModel dsvm)
Además, también puede verificar formcollection
Parámetro para ActionResult
[HttpPost]
public ActionResult MyAction(FormCollection collection)