【发布时间】:2010-12-02 11:03:57
【问题描述】:
在我当前的应用程序中,我们根据数据库在面板内动态创建控件 价值。比如,类型控件、样式、宽度等。 使用 ASP.NET MVC 可以做这样的事情吗?
谢谢, 阿尔卑斯山
【问题讨论】:
标签: asp.net-mvc dynamic controls
在我当前的应用程序中,我们根据数据库在面板内动态创建控件 价值。比如,类型控件、样式、宽度等。 使用 ASP.NET MVC 可以做这样的事情吗?
谢谢, 阿尔卑斯山
【问题讨论】:
标签: asp.net-mvc dynamic controls
ASP.Net MVC 不像 ASP.Net webforms 那样使用服务器控件。
您所说的绝对是可能的,但 MVC 将您带到 HTML 级别,而不是将其抽象为控件。
您可能希望使用部分视图,或者考虑向 HTMLHelper 类添加扩展方法以帮助您生成动态内容。
这是一个非常简单的示例 HtmlHelper 扩展方法。当然,这很简单,但是您可以看到扩展它以输出您需要的动态 html 是多么容易。此方法接受一个输入值,如果它为 null,则不输出 html,如果“addBr”设置为 true,则该值加上一个“<br>”标签,或者如果“addBr”为 false,则仅输出该值。
public static string FieldOrEmpty(this HtmlHelper<T> helper,
object value, bool addBr)
{
if (value == null)
{
return string.Empty;
}
else if (addBr)
{
return value.ToString() + "<br />";
}
else
{
return (value.ToString());
}
}
}
你会在你的视图中调用它
<%= HtmlHelper.FieldOrEmpty(Model.Field1) %>
【讨论】: