Question

Scénario: J'ai un menu déroulant, un bouton et le tableau html qui affiche les données du modèle. Ci-dessous le code ASPX et contrôleur

Les données sont affichées sans postback quand je clique sur le bouton Envoyer, mais dropdownlist & bouton apparaît deux fois, puis les clics suivants sont très bien.

Dois-je utiliser Html.RenderPartial partout, pas sûr ???

//Controller
[AcceptVerbs(HttpVerbs.Post)]
        public ActionResult SimpleUpdate(int carMake)
        {
            ViewData["CarMake"] = new SelectList(_carDataContext.Makes.Select(m => new { ID = m.Id, Name = m.Name }), "ID", "Name", carMake);
            var carModel = _carDataContext.Models.Where(m => m.MakeId == carMake).ToList();
            return PartialView("carmodels", carModel);
        }

// in aspx
    <%using (Ajax.BeginForm("SimpleUpdate", new AjaxOptions { UpdateTargetId = "ajaxPanel" }))
          {%>
        <%=Html.DropDownList("CarMake")%>
        <br />
        <input type="submit" value="SimpleUpdate" />
        <%
            }%>
        <div id="ajaxPanel">
            <%
                if (Model != null)
                {
            %>
            <table>
                <tr>
                    <th>
                        Id
                    </th>
                    <th>
                        Name
                    </th>
                    <th>
                        MakeId
                    </th>
                </tr>
                <%

                    foreach (var item in Model)
                    {%>
                <tr>
                    <td>
                        <%=Html.Encode(item.Id)%>
                    </td>
                    <td>
                        <%=Html.Encode(item.Name)%>
                    </td>
                    <td>
                        <%=Html.Encode(item.MakeId)%>
                    </td>
                </tr>
                <%
                    }%>
            </table>
            <%}%>
        </div>
Était-ce utile?

La solution

Vous devez créer une vue partielle (comme un contrôle utilisateur) pas une vue normale, dans ce cas. Et vous devez ajouter votre vue partielle dans votre vue principale en tant que contrôle avec Html.RenderPartial.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top