MVC 4 下拉列表更改的回发

2023-11-26

我正在使用 MVC 4,并且布局中有一个菜单。我的菜单的一部分由一个下拉列表组成,用户可以在其中在可用的提供商之间进行选择。

<div class="row">
    <div class="col-md-4">
    @Html.DropDownListFor(x=> x.usr.DatUsrs.IdProvider, new SelectList(Lista, "Value","Text"))
    </div>
    <div class="col-md-3">
      Credit
      @Html.DisplayTextFor(x=> x.usrSelectedProvider.AvailiableCredit)
    </div>
    <div class="col-md-3">
      TEXT
    </div>
    <div class="col-md-2">
      Closing Day  @Html.DisplayTextFor(m=> m.usrSelectedProvider.ClosingDay)
    </div>
  </div>

我遇到的问题是:当用户更改下拉列表中的所选项目时,我想进行回发以便能够加载 AvailiableCredit 和 ClosingDay。在网络表单中,我可以使用自动回发来做到这一点,但我还没有找到在 MVC4 中做到这一点的方法


有几种方法可以做到这一点,但首先您需要了解您正在做的事情的结构。

它不是 MVC 中的“回发”(或者,实际上,一般来说,在 HTTP 中......WebForms 欺骗了您)。您要做的只是将数据发布到服务器并接收响应。在 MVC 框架中,该帖子的目标将是控制器操作。响应可能有几种不同的情况,具体取决于您采取的方法。

我建议编写一些 JavaScript 来通过 AJAX 执行此任务。这样页面就不会刷新,您只需发送/接收与当前特定任务相关的数据。 ASP.NET MVC 附带了 jQuery,因此我将假设在本例中使用 jQuery。

首先,您需要绑定到更改事件select元素。它是probably认同与id“IdProvider”,但您需要检查渲染的 HTML 来确定。假设是这样,你可以使用这样的东西:

$('#IdProvider').change(function () {
    // respond to the change event in here
});

现在您可以在该处理程序中对服务器进行 AJAX 调用。它可能很简单:

var selectedValue = $('#IdProvider').val();
$.post('@Url.Action("MyAction", "MyController")', { selection : selectedValue }, function (data) {
    // handle the server response here
});

这样,控制器操作将在名为的参数中提供选定的值selection:

public ActionResult MyAction(string selection)
{
    // do your server-side processing and get your data
    return Json(data);
}

此操作返回 Json 格式的数据,因为它由客户端上的 JavaScript 使用。因此,在处理响应时$.post()调用上面的方法,你会在data那里的价值。

然后,您可以在 JavaScript 代码中如何处理这些数据。如果它是一个包含您正在寻找的两个值的简单结构,那么它可能会像这样简单:

$('#AvailableCredit').text(data.AvailableCredit);
$('#ClosingDay').text(data.ClosingDay);

或者,你could包裹住select中的元素form并在选择更改时发布整个内容,然后控制器操作将返回一个View并在该视图中填充数据。但这可能有点矫枉过正,因为您只想发送一个值并接收两个值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MVC 4 下拉列表更改的回发 的相关文章

随机推荐

  • 如何将 ComboBox 的 SelectedItem 绑定到作为 ItemsSource 中项目的副本的对象?

    我正在将 MVVM 模式与 WPF 一起使用 并遇到了问题 我可以将其简化为以下内容 我有一个 CardType 模型 public class CardType public int Id get set public string Na
  • 重写 std:exception 的析构函数

    如果以下情况 则以下程序无法在 g 4 4 中编译 line 8被评论 为什么 看来当我重写时std exception构造函数 我也必须重写它的析构函数 这是什么原因呢 include
  • Scala 中的反函数

    Scala 有没有办法表达任何函数的反函数 例如 如果我有一个函数f像这样 x Int gt x 1 我希望能够编写一个反函数g like f x Int gt x not a valid scala syntax or x Int gt
  • 字符串连接在 SQLite 中不起作用

    我正在尝试执行 SQlite 替换函数 但在函数中使用另一个字段 select locationname p from location 在此片段中 结果是 0 的列表 我本来期望一个字符串 其中包含来自 locationname 的文本和
  • 为什么使用整数而不是长整型?

    我经常看到有关的问题Overflow错误与vba 我的问题是为什么使用integer变量声明而不是仅仅定义所有数值变量 不包括double等 作为long 除非您正在执行类似 for 循环的操作 您可以保证该值不会超过 32 767 限制
  • Windows 上的 Java:如何将文件删除到垃圾箱(使用 JNA)

    我根本没有 Windows API 的经验 所以请原谅我的无知 我想将文件删除到垃圾箱 如何使用JNA以及如何检测这是否不可能 例如 因为文件位于网络共享上 Use com sun jna platform FileUtils代替com s
  • 使用支持 WebGL 的浏览器查看 VRML 文件 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我有一个生成 VRML 1 0 文件的旧应用程序 我想构建一个基于 WebGL 的 Web 界面来显示这些 VRML 文件 有没有简单的方法可以做到
  • 具有 ngFor 元素的 ngModel 的动态 angular2 形式

    我正在尝试创建一个连接到 ngModel 的动态表单 它允许用户根据需要添加更多控件 如下图所示 表单的行为符合预期 但添加一组新控件时除外 因为它会删除先前输入的内容 尽管模型没有改变 我创建了这个plunkr为了展示我正在谈论的行为 这
  • Kerberos、委派以及如何正确执行此操作?

    我有两个独立的自制应用程序 需要在它们之间进行通信 一个是前端应用程序 实际上是 asp net 另一个是会计应用程序的后端接口 后端接口不是专门为此前端创建的 它是许多其他应用程序用来与我们的产品集成的通用接口 为了方便用户 我们希望在前
  • 离散余弦变换DCT实现C

    我试图在 C 中实现正向和反向离散余弦变换 DCT 代码是通过 dct 函数将单个输入像素块变换为变换矩阵 然后通过 idct 功能 请参阅随附的代码 我的 idct 输出是 244 116 244 116 等连续值 从 idct 值的外观
  • 使用 SDL 时未定义对 WinMain@16 的引用

    我在让一切正常工作方面遇到了很多麻烦 以便我可以开始在 Windows 上进行开发 而不是在 Linux 上进行开发 Linux 是我在编码时通常使用的系统 我在尝试编译 SDL 程序时遇到了一个相当奇怪的问题 一旦我包含 SDL 库 程序
  • php 如何查找用户来自的位置?

    简单的问题 how to find the location url where a user came from before accessing my page and how to find the location url wher
  • Android 中已弃用“java.lang.String”

    我写了这样的简单标签 private static final String TAG MainActivity 字符串已被弃用 有没有其他方法可以使用String 根据此评论java lang string 在 android studio
  • 如何使用leakcanary,如何将leakcanary添加为jar以使用.mk文件构建apk

    LeakCanary 是一个适用于 Android 和 Java 的内存泄漏检测库 金丝雀泄密 我的项目是基于android make文件系统 依赖于一些android内部接口和自定义方法 如何将 LeakCanary 作为库添加到我的应用
  • 在 Hive 中将字符串转换为时间戳

    我的 Hive 表中有以下时间戳字符串表示形式 20130502081559999 我需要将其转换为字符串 如下所示 2013 05 02 08 15 59 我尝试过以下操作 code gt gt gt result from unixti
  • 如何比较不区分大小写和不区分重音的字符串

    如何比较不区分大小写和不区分重音的字符串 好吧 这在 SQL Server 上很容易完成 不过我想在 C NET 4 5 1 上做同样的事情 我怎样才能以最正确的方式做到这一点 我的意思是这 3 个字符串在比较时应该返回相等 http ww
  • Hibernate 查询缓存 - 对于不在二级缓存中的对象 - 有风险吗?有用?不好的做法?

    与此相关question Premise 这些是我的假设 基于我的阅读 经验和理解 它们可能是错误的 如果是 请发表评论 我将编辑问题 查询缓存和二级缓存都很好 查询缓存缓存查询 参数的标识符结果 如果数据库发生更改 并且未反映到缓存中 则
  • 在预先分配的内存中创建对象

    我们可以使用placement new在预先分配的内存中创建一个对象 让我们考虑以下示例 char buf new char 1000 pre allocated buffer string p new buf MyObject place
  • 如何增加 Visual Studio 测试的超时?

    我正在为我正在编写的一些代码 在 Visual Studio 2012 中 进行相当大的测试套件 在大多数情况下 运行单元测试没什么大不了的 但我还包含了许多具有更多外部基础设施依赖性的集成测试 测试的数量 再加上重新设置测试之间的基础设施
  • MVC 4 下拉列表更改的回发

    我正在使用 MVC 4 并且布局中有一个菜单 我的菜单的一部分由一个下拉列表组成 用户可以在其中在可用的提供商之间进行选择 div class row div class col md 4 Html DropDownListFor x gt