我们正在尝试使用存储在数据库中的代码动态构建表单。根据我们对特定表单的控制要求,我们将它们放在List中并将它们传递给我们的视图。
在视图中,我们遍历列表,输出每个代码;但是,当我做以下
时foreach(var control in Model.ParameterControls)
{
@control.code
}
我只是在“”中获取代码输出,它将代码本身打印到屏幕而不是渲染控件。如何使用@ Html.Textbox(“title”)或@ Html.DevExpress()。TextBox(“Title”)等控件并从变量中获取它?
修改 的
ParameterControls定义如下
List<ControlModel> ParameterControls
ControlModel的位置是:
public string Title { get; set; }
public string ControlName { get; set; }
public ParameterType Type { get; set; }
/* additional irrelevant properties removed */
参数类型为:
public int TypeID { get; set; }
public string TypeName { get; set; }
public string TypeCode { get; set; }
TypeCode被定义为控件(即)
@Html.DevExpress().TextBox("Test").GetHtml()
答案 0 :(得分:1)
foreach(var control in Model.ParameterControls)
{
<text>@control.code</text>
}
答案 1 :(得分:0)
我使用@ Html.Textbox(“title”)或者控件 @ Html.DevExpress()。TextBox(“Title”)并让它从a渲染 变量?
如果您想将varialbe中的Razor String解析为浏览器可显示的Html并最终将其显示在视图上,请使用RazorEngine。
Razor Engine解析的示例代码 -
Razor.SetTemplateBase(typeof(HtmlTemplateBase<>));
string template =
@"<html>
<head>
<title>Hello @Model.Name</title>
</head>
<body>
Email: @Html.TextBoxFor(m => m.Email)
</body>
</html>";
var model = new PageModel { Name = "World", Email = "someone@somewhere.com" };
string result = Razor.Parse(template, model);