【问题标题】:DropDownListFor won't call function when changedDropDownListFor 更改时不会调用函数
【发布时间】:2016-05-18 20:58:20
【问题描述】:

我对 html、razor 和 MVC 还很陌生,所以如果这是一个简单的解决方法,我深表歉意,但我已经解决了这个问题一段时间,但没有解决。我希望每次下拉列表更改时都会触发一个控制器操作,该操作会重新填充部分视图。我已经尝试使用'onchange' html 属性以及通过设置下拉列表的 id 并让 jquery 函数触发它来实现这一点。但是我无法触发以下三个功能中的任何一个。这是我的代码..

@model AislesOnlineDataControl.Models.PickupPointsListModel

@{
  ViewBag.Title = "PickupPointsList";
}

<script>
   function Select() {
     @Html.Action("PickupPartial", "PickUpPoint", new { mod = Model.points[Model.selectedID] });
   };

  $("#PupDropDown").on('change', function () {
    @Html.Action("PickupPartial", "PickUpPoint", new { mod = Model.points[Model.selectedID] });
  });

   $(function() {
     $('#PupDropDown').change(function () {
        Model.selectedID = Convert.ToInt32(selectPoint.SelectedValue);
        //window.location.reload();
        @Html.Action("PickupPartial", "PickUpPoint", new { mod = Model.points[Model.selectedID] });
     });
   });
</script>

<h2>Manage Pick-Up Points</h2>


@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()

     <div class="form-horizontal">
        @Html.ValidationSummary(true, "", new { @class = "text-danger" })

        @{SelectList selectPoint = new SelectList(Model.selectedPoint, "Value", "Text");}
       <div class="form-inline">
          <div class="row">
             @Html.DropDownListFor(model => model.selectedID, selectPoint, null, new { @id="PupDropDown", @onchange = "Select()" })
             @Html.ActionLink("New", "CreatePickup", "PickUpPoint", null, new { @class = "btn btn-default pull-right" })
          </div>
       </div>
       <div>
          @Html.Partial("~/Views/PickUpPoint/PickupPartial.cshtml", Model.points[Model.selectedID])
       </div>
    </div>
}

【问题讨论】:

  • @Html.Action() 是剃须刀代码,在传递给客户端之前在服务器上进行评估。它不会在客户端上重新评估以响应客户端事件。需要使用ajax调用服务端方法返回部分视图。

标签: javascript c# jquery html asp.net-mvc


【解决方案1】:

@Html.Action(..) 从您的局部视图返回ActionResult,最终结果是一段 html 代码。所以你不能把你的 html 代码放在你的 JavaScript 块中。

您需要的是 JavaScript 代码,以便为操作提供 ajax call 并呈现操作结果。

这是在asp.Net MVC中进行简单ajax调用的示例

https://stackoverflow.com/a/16186212/2802809

【讨论】:

    猜你喜欢
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多