gpt4 book ai didi

asp.net-mvc - 如何在 ASP.NET MVC 中禁用路由值的绑定(bind)?

转载 作者:行者123 更新时间:2023-12-03 03:43:19 26 4
gpt4 key购买 nike

据我所知,ValueProviderDictionary 从 3 个位置获取绑定(bind)值

  1. 来自帖子表单
  2. 来自路线值
  3. 来自查询字符串

我希望能够禁用第二个和第三个选项。我在这里看到的唯一解决方案是创建我自己的自定义 ValueProvider(复制粘贴 ValueProviderDictionary 源文件并从中删除这两个选项)。

这个解决方案正确吗?还有更优雅的选择吗?

(如果带有自定义 ValueProvider 的解决方案正确,应该在哪里初始化它?在 Controller 的操作方法中还是在自定义 ModelBinder 中?)

谢谢

最佳答案

重写 Controller.Initialize() 并在该方法中设置 ValueProvider 属性(在调用 base.Initialize() 之后)。

为了避免重新实现整个 ValueProviderDictionary,您可以将其子类化。唯一有趣的部分是您必须复制 ValueProviderDictionary.PopulateDictionary() 的一小段代码。在构造函数中,调用基本构造函数,然后立即调用 this.Clear(),然后调用 this.YourCustomPopulateDictionary()。这将使您的代码变得更小。

关于asp.net-mvc - 如何在 ASP.NET MVC 中禁用路由值的绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1314359/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com