我想限制我的 .cshtml 文件,以便内联 C# 代码只能关联到当前模型。所以我想限制允许的命名空间或类似的东西。
背景是我需要应用程序用户(系统管理员 - 而不是网络访问者)编辑 View 文件夹。 我的一些客户想要展示这些图像,而有些则不想。 因此,我需要控制他们可以做什么,而他们不能做什么
<span>
title
@{
MyApp.Database.DeleteAll()
or
System.File.Read()
}
但我希望他们能够做到
@foreach(var img in @Model.Images){
<img src="@img" />
}
用户将无法访问服务器或其他任何东西(如 webconfig 等)。他们将通过 Web 界面编辑 .cshtml 文件。
假设我有一个页面,其中显示了一组已上传的图片。 一些管理员希望将图像显示为 slider ,其他人则希望将图像显示为简单的 ul 这不会对应用程序的其余部分产生任何影响,因为一切都是松散连接的。
最佳答案
这是不可能的,并且会造成巨大的安全漏洞,因为 Razor 允许运行任何 C# 代码。
您可以改为让他们在不同的模板引擎中创建模板。例如有 Handlebars for C#这应该允许做你需要的。
关于c# - 限制 View 中的内联代码具有与模型相关的代码以外的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22144509/