使用 ASP.NET MVC Razor Helper 淘汰 foreach

发布于 2025-01-01 17:57:19 字数 246 浏览 1 评论 0原文

我有一个 Razor Helper 可以呈现一些标记。 Razor Helper 渲染一个 div,该 div 的 ID 需要等于其随附 ViewModel 的 ID。

我的问题是这个辅助方法需要从 Knockout foreach 循环中调用。对于集合中的每个项目,我需要渲染上面提到的 Razor Helper。我怎样才能为集合中的每个项目执行此操作(并传入具有正确 ID 的 ViewModel)?我唯一的选择是使用 Ajax 或 iframe 之类的吗?

I have a Razor Helper that renders some markup. The Razor Helper renders a div that needs to have an ID that is equal to the ID of its accompanying ViewModel.

My issue is that this helper method needs to be called from within a Knockout foreach loop. For each item in the collection, I need to render the Razor Helper mentioned above. How can I possibly do this (and pass in a ViewModel with right ID) for each item in the collection? Are my only options to use Ajax or an iframe or something?

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

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

发布评论

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

评论(2

暮年慕年 2025-01-08 17:57:21

你不能使用 Razor 助手来做到这一点,因为你的淘汰码(客户端)将在你的视图渲染(服务器端)之后执行。当然,您可以在脚本块中添加一些对 razor helper 的内联调用,它将按预期工作,但是当浏览器文档准备就绪时,knockout 的模板引擎将在客户端执行。
所以,就你而言 - 只有 ajax。

You can't do it with Razor helper, because your knockout code (client side) will be executed after your View will be rendered (server side). Certainly, you can add some inline calls to razor helper in script block and it will work as expected, but knockout's template engine will be executed on client side when browser document will be ready.
So, in your case - only ajax.

海拔太高太耀眼 2025-01-08 17:57:21

您可以使用 Razor 来帮助渲染 Knockout 模板,该模板将绑定到您的每个项目淘汰赛集合。

您可以使用 Knockout 的 attr 绑定来绑定您的 div id

我还没有尝试过这个,但我不明白为什么它不起作用。

You could use Razor to help render a Knockout Template that would be bound to each item in your knockout collection.

You may get your div id to bind using Knockout's attr binding

I haven't tried this, but I don't see why it could not work.

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