Pubblicazione di raccolte utilizzando viste parziali e Microsoft Ajax in ASP.NET MVC2
-
28-10-2019 - |
Domanda
Sto usando la vista parziale con Ajax.beginform. In quella pagina di vista parziale, ho il seguente markupMODIFICARE
<%
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>
E nel controller, ho questo modello per la rappresentazione dei dati
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; }
}
MODIFICARE
public ActionResult ManageDataSources(DataSourceViewModel dsvm)
{
return PartialView("ManageDataSources");
}
Quando pubblico i dati, questi valori parametri e parametri non sono affatto vincolati all'elenco degli oggetti. Come faccio a fare questo. Sto usando Microsoft Ajax e voglio farlo senza usare altri pluviali. Si prega di suggerire il modo giusto.
MODIFICARE
Questi sono i dati nell'intestazione prelevati da 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
Soluzione
Quello che ho capito che hai una struttura di dettaglio principale e vuoi riceverlo controller. se questo è il caso. Quindi ci sono due possibilità o la porzione di dettaglio ha una porzione di dettaglio a lunghezza variabile o una porzione di dettaglio a lunghezza fissa. Puoi seguire il post qui per lunghezza variabile e lunghezza fissa. Per una lunghezza fissa puoi anche seguire qui.
Riceverai il modello nella seguente firma
public ActionResult ManageDataSources(DataSourceViewModel dsvm)
Inoltre puoi anche controllare formcollection
Parametro per ActionResult
[HttpPost]
public ActionResult MyAction(FormCollection collection)