C# 使用委托在asp.net中呈现html块

C# 使用委托在asp.net中呈现html块,c#,asp.net,asp.net-mvc,asp.net-2.0,asp.net-3.5,C#,Asp.net,Asp.net Mvc,Asp.net 2.0,Asp.net 3.5,今天早上我想到了一个整洁的黑客,可能不是原创的,但我以前没见过。我不认为这是一个很好的实践,但是当你需要在你的页面周围重复一个代码块,并且不想触摸其他代码或者创建其他文件的部分视图或组件时,它可以帮助你。 在.aspx文件中创建一个匿名委托,如下所示: <% Action<DataType> renderMe = data => { %> Some html text <a href="<%= data.url %>">That can&

今天早上我想到了一个整洁的黑客,可能不是原创的,但我以前没见过。我不认为这是一个很好的实践,但是当你需要在你的页面周围重复一个代码块,并且不想触摸其他代码或者创建其他文件的部分视图或组件时,它可以帮助你。 在.aspx文件中创建一个匿名委托,如下所示:

<%
Action<DataType> renderMe = data => {
  %> Some html text <a href="<%= data.url %>">That can</a> contain quotes, etc. 
     And other <%= data.something %> stuff...
  <%
};
%>

我知道这不是一个好主意,但有人能看出这样做有什么问题吗?

这本身就不错。与之相似,看起来更好。对于高级js,初始化使用相同的技术。也一样


事实是,合适的利基市场确实很窄。只有当所需的html片段应该传递到服务器端时,或者当您想在一个特定视图的上下文中重复使用它两次或多次,但不想创建单独的局部视图时。

在我看来太像PHP了。我宁愿使用自定义控件或转发器。我想知道PartialView有什么不好的地方,以至于您觉得需要使用变量。您可以更改MVC查找局部视图的位置,这样您就可以为整个web应用程序找到一个公共位置,这样……只会造成可能混乱的标记。除此之外,它在某些情况下也很方便。
This is some html and I want the block here: <% renderMe(myvar1); %> ...
or maybe here <% renderMe(myvar2); %>