创建类似于 BeginForm 的 html 帮助程序,您可以在其中访问块服务器端的内容
我正在致力于将自动 CoffeeScript 编译集成到 ASP.NET MVC 项目中。我已经有了一个工作,如果您在脚本标记中指定 .coffee 文件,它会将其编译为服务器上的 javascript。
我希望能够对嵌入视图中的 CoffeeScript 执行相同的操作。是否可以编写某种类型的 HtmlHelper,让我能够捕获用户在 using 块中提供的内容,类似于 Html.BeginForm 使用 IDispose 的工作方式?
I am working on integrating automatic CoffeeScript compilation inside ASP.NET MVC projects. I already have the piece working where if you specify a .coffee file in a script tag, it compiles it to javascript on the server.
I want to be able to do the same for CoffeeScript embedded in a view. Is it possible to write an HtmlHelper of some variety that would allow me to capture the content the user supplies within the using block similar to how Html.BeginForm works using IDispose?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Html.BeginForm() 实际上并不捕获
using
块的内容。它只是用表单标记包围它,通过将开始标记和结束标记写入来自IDisposable
的Dispose
方法上的响应。请在此处查看
Html.BeginForm()
的实现< /a> 和 Dispose 方法 这里。如果您确实想捕获该块的内容,您可能需要编写一个辅助方法,该方法采用 Razor 模板 作为参数。
通过实现以下方法:
您可以在 Razor 视图中使用它,如下所示:
更新:
只是为了澄清一下,鉴于您的扩展方法属于
MyApplication.Extensions
命名空间,您应该将以下内容添加到视图顶部:Html.BeginForm() doesn't actually capture the contents of the
using
block. It just surrounds it with the form tag, by writing the opening tag and then the closing tag to the response on theDispose
method, fromIDisposable
.Please see
Html.BeginForm()
's implementation here, and the Dispose method here.If you actually want to capture the contents of the block, you might want to write a helper method that takes a Razor Template as a parameter.
By implementing the following method:
You can use it in you Razor view like this:
UPDATE:
Just to clarify, given your extension method belongs to the
MyApplication.Extensions
namespace, you should add the following to the top of your view: