Частичное сообщение mvc при нажатии кнопки с использованием ajax

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

  •  13-09-2019
  •  | 
  •  

Вопрос

Сценарий:У меня есть раскрывающийся список, кнопка и таблица HTML, в которой отображаются данные из модели.Ниже приведен код в aspx и контроллере

Данные отображаются без обратной передачи, когда я нажимаю кнопку отправки, но раскрывающийся список и кнопка появляются дважды, а затем следующие щелчки выполняются нормально.

Должен ли я где-нибудь использовать Html.RenderPartial, не уверен???

//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>
Это было полезно?

Решение

В данном случае вам необходимо создать частичное представление (например, пользовательский элемент управления), а не обычное представление.И вам нужно добавить свое частичное представление в основное представление в качестве элемента управления с помощью Html.RenderPartial.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top