JavaScript 和 EditorFor 用于不同上下文中的模型

发布于 2024-10-11 03:36:25 字数 651 浏览 7 评论 0原文

如何使 javascript 代码/特别是 jQuery/ 与通过 EditorFor 和相应的编辑器模板生成的 HTML 代码一起使用?

问题是,我们可能有一个名为 PostCode 的模型(或 Zip,并不重要),并且它会有一个 PostCode.ascxEditorTemplates 文件夹中,然后通过 EditorFor 在“父”模型的各种父视图中渲染此部分(它们可能是 AddressCompany 等)。

当我们使用 EditorFor 渲染它时,我们确保它将渲染必要的前缀,例如 Address.PostCode.postname,以便绑定继续工作(当发布回控制器操作时,它将拾取它并设置正确的导航属性/引用)。

问题是,ID 和名称属性会根据我们渲染它的位置而变化。在这种情况下我需要以某种方式呈现调整后的 JS。

唯一的其他选择是使用我之前使用的 RenderPartial ,它不会改变标签的 ID 或名称,但最终无法工作,因为它不会在 HTML 中呈现前缀,因此绑定失败。

希望你明白我的意思并且有人已经明白了这一点

How do you make javascript code /specifically jQuery/ to work with HTML code that gets generated via EditorFor and the corresponding editor template?

The thing is, we might have a model called PostCode (or Zip, doesn't really matter) and it would have a PostCode.ascx in the EditorTemplates folder and then render this partial via EditorFor in various parent views for "parent" models(they might be Address, Company, etc.)..

When we render it with EditorFor we make sure it will render the necessary prefix like Address.PostCode.postname so the binding will continue to work (when posted back to the controller action it will pick it up and set up correct navigation properties/references).

The problem is, the ID and name attributes change depending on where we render it. Somehow I need to render the adjusted JS in that case.

The only other option would be using RenderPartial which I had before and which does not alter the IDs or names for the tags but consequentally fails to work because it doesn't render prefixes in HTML and as such binding fails.

Hopefully you understand what I mean and someone already got this figured out

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

左秋 2024-10-18 03:36:25

编辑器模板根据上下文生成不同 id 的问题可以通过使用 CSS 类选择器而不是 id 选择器来解决。

The problem of different ids generated by editor templates based on the context could be solved by using CSS class selectors instead of id selectors.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文