在 jquery.tmpl 模板中使用 MVC 助手
我有一个简单的 foreach
模板,在每个元素内我想要一个 ActionLink,但 ActionLink 需要发送一个 Id 来编辑该元素。
要模板化的项目:
<div data-bind="template: {
name: 'postsTemplate',
foreach: posts
}">
</div>
模板:
<script id="postsTemplate" type="text/html">
<h2 data-bind="text: Title"></h2>
<p class="post-info">
<p class="post-info" data-bind="text UserName"></p>
<span data-bind="Body"></span>
<p class="post-footer">
@Html.ActionLink("Comments", "IndividualPost", "Post", null, null, "comments", new {id = })
</p>
</p>
</script>
如何通过 ActionLink 发送实际的帖子 Id
?我的意思是,如何在不使用数据绑定的情况下访问帖子的 id? (因为它是一个帮手)。
I have a simple foreach
template and inside every element I want an ActionLink but that ActionLink needs to send an Id to edit the element.
The item to be templated:
<div data-bind="template: {
name: 'postsTemplate',
foreach: posts
}">
</div>
The template:
<script id="postsTemplate" type="text/html">
<h2 data-bind="text: Title"></h2>
<p class="post-info">
<p class="post-info" data-bind="text UserName"></p>
<span data-bind="Body"></span>
<p class="post-footer">
@Html.ActionLink("Comments", "IndividualPost", "Post", null, null, "comments", new {id = })
</p>
</p>
</script>
How can I send the actual post Id
through the ActionLink? I mean, How I can access to the post's id without using data-bind? (Because it's a helper).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您要按照以下方式实现您自己的 ActionLink 扩展:
那么您可以使您的模板如下所示:
生成的服务器端 html 看起来像:
在我看来,这又是一个完美的模板。
ActionLink 扩展的原因是正常的 Html.ActionLink 将您的 url 编码为
/Post/IndividualPost/%24%7Bid%7D
这不适用于模板If you would implement your own ActionLink extension along the line of:
Then you could make your template like:
the serverside html generated would then look like:
which in turn is a perfect template in my opinion.
The reason for an ActionLink extension is the fact that the normal Html.ActionLink encodes your url to
/Post/IndividualPost/%24%7Bid%7D
which doesn't work for the template选项1:
- 您的帖子视图模型可能来自服务器,它可能包含链接。
在服务器上
,然后在模板中渲染评论网址:
选项2:
使用表单
和模板中的
脚本(单击属性非常难看,应该使用绑定处理程序或视图模型函数进行改进( http://www.knockmeout.net/2011/08/simplifying-and-cleaning-up-views-in.html))
option 1:
- your posts viewmodel is probably coming from the server, it could contain the link.
on the server
and then render the comments url in the template:
option 2:
script using a form
and in the template
(the click attribute is quite ugly, should be improved using a binding handler or a viewmodel function ( http://www.knockmeout.net/2011/08/simplifying-and-cleaning-up-views-in.html ))