C# 在数据库和进程中存储Asp.net MVC5代码以在运行时获取值 @foreach(模型中的var项目) { @items.name @项目名称 @项目.薪金 }

C# 在数据库和进程中存储Asp.net MVC5代码以在运行时获取值 @foreach(模型中的var项目) { @items.name @项目名称 @项目.薪金 },c#,asp.net,asp.net-mvc,razor,C#,Asp.net,Asp.net Mvc,Razor,当直接在cshtml页面上编写代码时,代码运行良好 如果我使用@Html.Raw(items.data)它会显示代码而不是数据/值 我的要求是将上述代码存储在数据库中,显示存储在数据库中的记录,并在运行时对其进行处理。我想通过代码获取数据。我认为您无法将razor代码存储到数据库中并重用它。因为当您使用@Html.Raw()时,视图引擎希望字符串是Html代码,并让浏览器对其进行解释。如果你把razor代码保存在那里,它会直接进入浏览器。期望html语法和razor语法,浏览器会返回代码…希望它

当直接在cshtml页面上编写代码时,代码运行良好

如果我使用
@Html.Raw(items.data)
它会显示代码而不是数据/值


我的要求是将上述代码存储在数据库中,显示存储在数据库中的记录,并在运行时对其进行处理。我想通过代码获取数据。

我认为您无法将razor代码存储到数据库中并重用它。因为当您使用
@Html.Raw()
时,视图引擎希望字符串是Html代码,并让浏览器对其进行解释。如果你把razor代码保存在那里,它会直接进入浏览器。期望html语法和razor语法,浏览器会返回代码…希望它有意义。

您可以用于模板化: 数据库中的字符串将成为模板,然后可以将模型作为模板的模型发送

<table>
    @foreach(var items in Model)
    {
        <tr>
            <td>@items.name</td>
            <td>@items.designation</td>
            <td>@items.salary</td>
        </tr>
    }
</table>

在上面的示例中,第一个参数是您的模板,第二个参数是模型。

您在所有td标记中都遗漏了@symbol。@items.name。我已经更正了代码。发布时我忘了添加@。您正在获取
@项的值。name
来自
Model
类似的问题:很好的解决方案,认为这是Nikhil需要的。(+1)
 string template = "Hello @Model.Name! Welcome to Razor!";
 string result = Razor.Parse(template, new { Name = "World" });