Publication de collections à l'aide de vues partielles et Microsoft Ajax dans ASP.NET MVC2

StackOverflow https://stackoverflow.com/questions/8851028

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
Était-ce utile?

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)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top