Как Вы отправляете dropdownlist в asp.net mvc от формы Ajax

22
задан Community 23 May 2017 в 12:00
поделиться

4 ответа

Что можно попытаться сделать это это (требуемый jQuery):

$("#yourDropdown").change(function() {
  var f = $("#yourForm");
  var action = f.attr("action");
  var serializedForm = f.serialize();
  $.post(action, serializedForm,
    function () { alert("Finished! Can do something here!") });
});
3
ответ дан Strelok 29 November 2019 в 04:06
поделиться

Мы можем видеть Ваш код Контроллера? Можно использовать Запрос. IsMvcAjaxRequest () в Вашем контроллере для возврата только части данных, если это - Запрос Ajax вместо всего Представления. В Вашем Представлении перемещают Вашу форму в PartialView и вызов

Html.RenderPartial("viewname");

В Вашем Контроллере:

if (Request.IsMvcAjaxRequest())
{
return PartialView("viewname");
}
else
{ //Non Ajax code here. }

0
ответ дан Adam 29 November 2019 в 04:06
поделиться

У меня тоже была такая же проблема. У меня было несколько раскрывающихся списков в частичных представлениях, чтобы они могли обновляться независимо, но установка атрибута «onchange» продолжала обновлять всю страницу.

Я заметил, что «this.form.submit ()» всегда относится к основной форме, вне частичный вид. Поэтому вместо этого я добавил кнопку отправки внутри формы AJAX и сослался на это:

<%=Html.DropDownList("data", ViewData["data"] as SelectList
, new { onchange = "$(\"#button" + Model.IdIndex + "\").click();" })%>


<input type="submit" id="button<%=Model.IdIndex %>" style="display: none"  /><br />

Моя "Модель. Надеюсь, это поможет.

2
ответ дан 29 November 2019 в 04:06
поделиться

Если вы используете MVC, то, вероятно, лучший способ - это с jQuery. ...

<%= Html.DropDownList("sortByList", new SelectList(ViewData["SortOptions"]) %> 
<%= Html.TextBox("updateText") %>

<script>
$("#sortByList").change(function() {
    $.ajax({
        url: <%= Url.Action("UpdateForm")%>,
        type: "POST",
        data: { 'sortBy': $(this).val() },
        dataType: "json",
        success: function(result) { $('#updateText').text(result); },
        error: function(error) { alert(error); }
    })

});
</script>

Ваш контроллер будет что-то вроде:

public JsonResult UpdateForm(string sortBy)
{
    string result = "Your result here";
    return Json(result);
}
1
ответ дан 29 November 2019 в 04:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: