在视图中限制内联代码,使其不具有与模型相关的代码

时间:2014-03-03 10:39:19

标签: c# asp.net-mvc asp.net-mvc-4 razor

我想限制我的.cshtml文件,以便内联c#代码只能与当前模型相关联。所以我想限制允许的命名空间或类似的东西。

背景是我需要应用程序用户(系统的管理员 - 而不是网络访问者)编辑的视图文件夹。 我的一些客户想要显示图像,有些则不想。 因此,我需要控制能做的事情,以便他们不能做到

<span>
    title
@{
   MyApp.Database.DeleteAll()
   or
   System.File.Read()
}

但我希望他们能够做到

@foreach(var img in @Model.Images){
      <img src="@img" />
}

用户无权访问服务器或其他任何内容(例如webconfig等)。他们将通过Web界面编辑.cshtml文件。

假设我有一个页面,其中显示了上传图像的集合。 有些管理员希望将图像显示为滑块,将其他图像显示为简单的ul 这对应用程序的其余部分没有任何影响,因为所有内容都是松散连接的。

1 个答案:

答案 0 :(得分:1)

这是不可能的,并且由于Razor允许运行任何C#代码而产生巨大的安全漏洞。

您可以让他们在不同的模板引擎中创建模板。例如Handlebars for C#应该允许完全按照您的需要进行操作。