Omu*_*Omu 12 asp.net-mvc asp.net-mvc-3
我想创建一个html帮助器,它将作为视图的参数内容接收,如下所示:
<% Html.MyTextArea("txt1", () => {%>
content of the view
<%=Html.TextBox("Name") %>
...
<% }) %>
Run Code Online (Sandbox Code Playgroud)
既然您已将其标记为 MVC,我建议您可以执行像我在博客上发布的那样的操作,作为获取模板语法突出显示的方法,因为如果您不需要操作,解决方案将非常相似内部内容,并且只是对以某种方式“包装”它感兴趣(例如在需要一些额外逻辑的包含元素中)。
使用该技术,HtmlHelper 方法接收块的上下文。不过,语法与您建议的技术略有不同。
例如,您可以有类似的内容:
@using(Html.MyTextArea("txt1"))
{
<some HTML content here>
}
Run Code Online (Sandbox Code Playgroud)
上下文被传递到一个 IDisposable 对象,该对象包含一个 Writer(用于写入当前输出流)。在那里,它可以输出多个元素或根据需要进行其他操作。Dispose 用于编写关闭元素(如果需要)。
所以,你最终可能会得到这样的结果:
<textarea><some HTML content here></textarea>
Run Code Online (Sandbox Code Playgroud)
然而,正如我所提到的,这并不提供函数本身的内部内容。
由于 Razor 页面从内到外呈现,因此没有有效的方法可以按照您想要的方式获取输出。有一些关于将 Partial 的输出缓存到字符串的帖子(这意味着示例中的内部内容将位于另一个文件(.ascx 文件)中),因此您可能需要查看这些帖子。
| 归档时间: |
|
| 查看次数: |
239 次 |
| 最近记录: |