我有一个局部视图文件,它接收保存在视图目录之外的@model - 实际存储在app_data中。ASP MVC 5 - 视图文件夹外的部分视图文件
但是我得到错误:
The name 'model' does not exist in the current context
Source File: ...\app_data\_DefaultLayout.cshtml
下面是我的代码:
@Html.Partial("~/app_data/_DefaultLayout.cshtml"), Model)
默认布局如下:
@using System.Web.Mvc
@using System.Web.Mvc.Html
@model MyApp.ViewModels.CreateCaseViewModel
// some html and razor code
是的我知道那个约定。不过,我需要允许用户上传布局文件,并且我无法授予他们在视图文件夹内执行此操作的权限,这是出于明显的安全原因。 – adam78
你不应该让用户上传布局文件。如果他们上传一些文件,其中有一些C#代码递归循环呢?如果它有代码从您的应用程序根目录读取文件并将其显示在ui中,该怎么办?代码在服务器中执行,人们可能会错误地使用它。这是一个安全问题。如果你关心的只是html标记/样式,你应该考虑一些类似编辑器的UI,他们可以编辑页面(如富文本编辑器),以便将该标记存储在表中并根据需要呈现它(如博客) – Shyju
我需要他们能够布局表单的结构存储为xml或json。使用剃刀比xslt容易得多,这就是为什么我要使用剃刀存储布局。另一种选择是使用xslt构建表单并允许用户上传和xslt文件来布局表单。 – adam78