Publication de collections à l'aide de vues partielles et Microsoft Ajax dans ASP.NET MVC2
-
28-10-2019 - |
Question
J'utilise la vue partielle avec l'Ajax.beginform. Dans cette page de vue partielle, j'ai le balisage suivantÉDITER
<%
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>
Et dans le contrôleur, j'ai ce modèle pour la représentation des données
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; }
}
ÉDITER
public ActionResult ManageDataSources(DataSourceViewModel dsvm)
{
return PartialView("ManageDataSources");
}
Lorsque je publie les données, ces valeurs de paramètre et de paramètres ne sont pas du tout liées à la liste des objets. Comment puis-je faire cela. J'utilise Microsoft Ajax et je veux le faire sans utiliser d'autres plugings. Veuillez suggérer la bonne façon.
ÉDITER
Ce sont les données de l'en-tête tirées 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
La solution
Ce que je comprends, vous avez une structure de détail maître et vous voulez recevoir son contrôleur. Si c'est le cas. Ensuite, il y a deux possibilités, soit votre partie détaillée a une partie détaillée de longueur variable ou une partie détaillée de longueur fixe. Vous pouvez suivre le message ici pour une longueur variable ainsi qu'une longueur fixe. Pour une longueur fixe, vous pouvez également suivre ici.
Vous recevrez le modèle dans la signature suivante
public ActionResult ManageDataSources(DataSourceViewModel dsvm)
De plus, vous pouvez également vérifier formcollection
Paramètre pour ActionResult
[HttpPost]
public ActionResult MyAction(FormCollection collection)