类型或命名空间“Mvc”名称在命名空间“System.Web”中不存在

2023-12-04

我有一个使用 RazorEngine 生成电子邮件的类库。 RazorEngine 使用 Mvc。 我在我的库类中引用了 System.Web.Mvc,将其设置为复制本地,并且它存在于 Bin 文件夹中。但是我仍然得到这个例外。

我让它工作的唯一方法是实际调用 Mvc 命名空间中的某些东西,例如MvcHtmlString test = new MvcHtmlString("test");在调用 RazorEngine 之前(找到解决方案here)

我想这不是世界末日,但我仍然想解决这个问题(或者至少了解导致它的原因)。干杯


好的,所以我可以将问题归结为以下几点: 您有一个类似自托管 WebAPI/控制台应用程序的东西,并且想要使用 Razor 来 创建 HTML 页面。这些 Razor 模板使用 Sytem.Web.WebPages 中的一些类 或 System.Web.Mvc 等,它们捆绑在自己的程序集中。

但是这些类被使用only意见中。当以调试模式启动时,您将看到 运行时确实not加载这些程序集,无论它们是否添加到项目中 参考与否。编译razor文件时出现,编译器只看到命名空间 来自加载的程序集,因此您会得到那些 X-not-found 异常。您必须加载所需的 手动程序集(并确保找到兼容版本)。

一个简短的例子:

我们有一个layout.cshtml和一个index.cshtml。我们使用一些 HTML 帮助函数来创建表单。 布局.cshtml:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8" />
</head>
<body>
  <div class="main-content">
    @RenderBody()
  </div>
</body>
</html>

索引.cshtml:

@using System.Web.Mvc;
@{
  Layout = "layout";
}
<div class="box-body">
  <h1>Hello!</h1>
  <p>
    Got Html? @MvcHtmlString.Create("<b>FooBarBaz</b>")
  </p>
</div>

解析 razor 文件并处理 HTML 输出的源代码。为了简单起见 假设所有文件都位于可执行文件附近;您可能需要适应您的存储结构:

//load required assembly. By using the short name here the runtime uses
//the the first one that matches. See MSDN for further information
System.Reflection.Assembly.Load("System.Web.Mvc");
//cache the template before the actual page to avoid a null reference exception
RazorEngine.Razor.GetTemplate(File.ReadAllText("layout.cshtml"), "layout");
var result = RazorEngine.Razor.Parse(File.ReadAllText("index.cshtml"));
Console.Write(result);

然后,您需要将程序集添加到项目中(在此示例中可以通过 nuget、Microsoft.AspNet.Mvc),并且可能手动添加引用(如果未自动添加)。这样,您就可以获得(希望)正确的版本以及可执行文件。

最后一点:

ASP.Net MVC 视图中几乎所有可用的东西(例如 @Html)都是由 ASP.NET 管道,因此直接使用 Razor 时不可用。 (我不知道是否或如何 除了模型之外,还可以将对象传递给 Razor)所以大多数类和函数 来自 System.Web.Mvc 或 System.Web.WebPages 命名空间可能无法访问 (无需重建 ASP.NET 的部分内容)。

使用的 @Layout 和 @RenderBody() 通常也是其中的一些 ASP.NET 帮助器。但由于它们非常常见,因此作者似乎在 RazorEngine 解析器中手动重新创建了它们的函数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

类型或命名空间“Mvc”名称在命名空间“System.Web”中不存在 的相关文章

  • 如何确定异常是否属于特定类型

    我有一段 try catch 代码 try catch Exception ex ModelState AddModelError duplicateInvoiceNumberOrganisation The combination of
  • ViewModel 的列表在操作中为 null

    我正在开发我的第一个 ASP NET MVC 3 应用程序 我有一个如下所示的视图 model IceCream ViewModels Note NotesViewModel using Html BeginForm Html Valida
  • 在执行 ASP.NET 的 Visual Studio 2008 中未声明“__o”

    在执行 ASP NET MVC 时 我在 Visual Studio 2008 中经常遇到这个恼人的错误 bug 未声明 o 问题是什么 我该如何解决 只需将其添加到页面顶部即可 所以现在我的 ASP Net 内容占位符如下所示
  • 无法加载文件或程序集“Newtonsoft.Json”或其依赖项之一

    首先 它不仅仅是重复的 以下问题的答案都不适合我 http goo gl tS40cn http goo gl tS40cn http goo gl pH6v2T http goo gl pH6v2T 我刚刚使用 Nuget 包管理器更新了
  • MVC5 实体框架的问题

    我在我的 Web 应用程序中使用 Visual Studio 2013 中的 ASP NET MVC5 Entity Framework 6 我正在尝试我的模型工作 但由于某种原因而出现错误 我已经尝试过 Fluent API 和它自己的模
  • Asp.Net Mvc 无法注销

    这是我的登录代码 var expire DateTime Now AddDays 7 Create a new ticket used for authentication var ticket new FormsAuthenticatio
  • 为什么要调用base.OnActionExecuting(filterContext);?

    我只是在看我的一些旧代码 我有一个动作过滤器 OnActionExecuting 方法 最后我有 base OnActionExecuting filterContext 为什么到处搜索我都看到这个很多次了 我还看到 在我的旧授权标签中 我
  • 如何在 DropDownList 中保留空格 - ASP.net MVC Razor 视图

    我在视图中通过以下方式绑定我的模型 问题是我的项目文本是格式化文本 单词之间有空格 如下所示 123 First 234 00 123 AnotherItem 234 00 123 Second 234 00 我想保留此项目文本中的空格 即
  • DbContext 实例不能在 OnConfiguring 内部使用,因为此时它仍在配置中

    我正在尝试构建一个自定义视图位置系统 public class myViewLocationExpander IViewLocationExpander private myDBContext context public myViewLo
  • 播种多对多数据

    您好 我正在尝试为我的项目创建一些种子 但我在将多对多关系数据播种到数据库时遇到问题 My database看起来像这样 in 教师技能 教师ID and Skill ID当然是他们的表的外键 My seeder看起来像这样 protect
  • 当checked属性为false时,单选按钮默认被选中?

    我正在尝试生成单选按钮 有条件地检查检查的属性 如果该值存在于数据库中 则应选择它 否则检查的属性为 false 所以最初数据库中没有行 所有单选按钮的检查属性也为 false 但仍然在 UI 上选择 请参见下图 所以不知道这是默认行为还是
  • 将 {sitename} 参数传递给 MVC 控制器操作

    我怎样才能检索站点范围的 URL 参数在路线中而不用参数使每个控制器操作混乱 我的问题类似于这个问题 https stackoverflow com questions 235118 asp net mvc route to usernam
  • ASP .NET MVC,创建类似路由配置的永久链接

    我需要帮助在 MVC 网站中创建类似 URL 路由的永久链接 Slug 已设置为 www xyz com profile slug 代码为 routes MapRoute name Profile url profile slug defa
  • 编辑用户个人资料详细信息

    如何创建用于编辑用户自定义信息的操作和视图 授权基于 VS 通过 MVC 4 项目创建的成员资格 我添加了其他列 例如 FirstName 等 我需要并且注册工作正常 但我不知道如何让此属性显示在视图中 Html EditorFor并将更改
  • 无法使用 Ninject 将依赖项注入到从 Angular 服务调用的 ASP.NET Web API 控制器中

    我将 Ninject 与 ASP NET MVC 4 一起使用 我正在使用存储库 并希望进行构造函数注入以将存储库传递给其中一个控制器 这是实现 StatTracker 接口的上下文对象 EntityFramework public cla
  • 限制实体框架中子实体的数量

    底线在前 有没有一种简洁的方法可以限制可以属于实体框架中父级的子实体的数量 我现在使用的是4 3 1 问题 我正在开发一个 ASP NET MVC3 站点 它通过使用实体框架的数据访问层访问数据 我有一个 SearchList 实体 它与搜
  • MVC 操作过滤器和多线程

    我目前遇到了操作过滤器的线程问题 在我的应用程序上 我使用 ActionFilter 来执行每个操作的跟踪 此跟踪将提供统计信息 例如调用的持续时间 并记录参数被派往行动 实际的跟踪实现 由其他团队完成 使用 IDisposable 对象
  • 绑定到 ViewModel 时如何更新 Model?

    我有一个 HttpPost 操作方法签名如下 HttpPost public ActionResult Edit ExistingPostViewModel model Save the edited Post 现在 在过去 当我没有使用
  • 实时服务器上的 woff 字体 MIME 类型错误

    我有一个 asp net MVC 4 网站 我在其中使用 woff 字体 在 VS IIS 上运行时一切正常 然而 当我将 pate 上传到 1and1 托管 实时服务器 时 我得到以下信息 网络错误 404 未找到 http www co
  • 如何使用C#在asp.net中下载xml文件

    我正在使用网络应用程序ASP NET 与 MVC3 我是 mvc3 的新手 我的网页上有一个下载按钮 当我要单击下载按钮时 我希望能够打开该 XML 文件 我尝试过一些代码更改动作结果但我没有打开文件 通过使用下面提到的代码 我收到一个下载

随机推荐

  • JSONEncoder 的 dateEncodingStrategy 不起作用

    我正在尝试使用 Swift 4 的 Encodable JSONEncoder 将结构序列化为字符串 该对象可以保存异构值 例如 String Array Date Int 等 除了日期之外 所使用的方法工作正常 JSON编码器的dateE
  • 如何派生具有类型族的记录的实例

    这是我正在尝试但无法编译的内容 LANGUAGE TypeFamilies LANGUAGE StandaloneDeriving LANGUAGE FlexibleInstances import Data Text as T impor
  • URL缩短网站

    我正在开发一个使用 PHP MySQL 和 Apache 的 URL 缩短网站 当我查看开源项目时 URL 缩短的总体思路是 用户提供 URL 链接 系统从数据库获取该链接的 ID 然后转换 ID X 基数系统 我使用的是 36 基数 然后
  • 删除连续的重复单元格

    只是为了澄清 我不想删除重复的行 我想删除行中的重复单元格 这是一个经典的地址表 在某些行中有重复的条目 我需要删除这些条目 我在 VBA 中看到的大部分内容都是用于删除列中的重复值 但我找不到删除行中的重复值的方法 Name Addres
  • 是否有工具/解决方案可以对循环进行编程,其中仅每 X 次迭代检查一次条件?

    例如 我有一个由 while 循环组成的函数 这个函数会检查素数 function isprime int number int i 2 int max int sqrt number 1 while i
  • 将中立者放在一边的李克特图

    我正在使用 Likert 包来创建调查问卷图 我想创建一个像这样的情节 其中中性反应被搁置 你知道在 R 中是否有办法做到这一点 一个如何重现情节的简单例子 lst lt c I dislike them a lot I dislike t
  • 如何将 facebook api 中的日期转换为 android 应用程序日期格式

    我正在开发一个类似于 android facebook 应用程序的应用程序 我从 Facebook 应用程序获得了创建的时间字段 created time 2012 11 28T12 53 40 0000 那么 我怎样才能将其转换为 and
  • C 指针:数组变量

    我在我的书中读到了这一点 以及互联网上的许多来源 数组变量points到数组中的第一个元素 如果为真 则数组变量和第一个元素是不同的 Right 这意味着通过下面的代码 它将产生两种不同的结果 int main char msg stack
  • 有没有办法在 Javascript 中组合对象

    我正在用 Javascript 进行一些数据清理 我想知道是否有一种方法可以根据通用 ID 组合对象 鉴于以下情况 subject Hadji Singh predicate nameOfUser id 3f540200 58b9 40a5
  • R Kruskal-Wallis 与多个因素

    我正在寻求帮助 对我的数据集执行大量因素的 Kruskal Wallis 检验 我可以对单个因素进行测试 例如 AD 1yr kruskal test Shannon AD 1y data comm 但我想要测试 50 多个因素 并且希望有
  • C 中未定义长度的数组

    我正在看教科书中的一个练习 内容是 创建一个 C 程序 从键盘获取长度为 N 的数组 问题是 在C语言中 如何创建未定义长度的数组 谢谢你们 不要创建未定义长度的数组 After得到需要的长度N 如果 C99 使用 VLA 可变长度数组 i
  • 垂直对齐位于浮动同级旁边的 Div 中的多行文本

    我有两个兄弟姐妹 其中一个占据父级宽度的 70 并向左浮动 它有一个clip path创建不规则多边形 同级 div 的宽度为父级 div 的 100 我已经放了一个shape outside浮动 div 上的属性允许同级中的文本以遵循多边
  • SupportMapFragment 或 GoogleMap 为 null

    设法使代码没有错误 但是在启动时 我总是在 mMap mapFrag getMap 行处收到空指针异常 为什么会这样呢 我是否缺少一些导入或一些步骤 我不确定是否是 SupportMapFragment 或 GoogleMap 对象导致了问
  • Plone 中是否有一种简单的方法可以在新用户加入门户时收到电子邮件通知?

    我希望每当新用户加入门户时都会向门户电子邮件地址发送电子邮件通知 我的猜测是我应该编写一个新产品来做到这一点 这样的产品是否已经存在 针对 Plone 4 我检查了内容规则 但据我所知 只有当我让用户对膜 记住之类的东西感到满意时 它才能起
  • 使用 PHP xmlwriter 在 xml 文件中添加多个数据

    我需要为每个月添加文章xml使用 PHP 文件xmlwriter sql SELECT YEAR FROM UNIXTIME timestamp AS YEAR MONTH FROM UNIXTIME timestamp AS MONTH
  • d3.js:从文件中绘制地图上两点之间的弧

    我是 d3 js 的新手 正在尝试一些简单的事情 我绘制了一张读取 file1 和 file2 的世界地图 file2 按索引 ID 纬度和经度列出机场 file1 通过机场的索引 ID 来对机场进行配对 我想画一条弧线 一条线或任何东西来
  • 依赖性跟踪功能

    我只是想知道是否有人知道如何在运行后自动创建视图DROP CASCADE 现在我试图首先放弃经典的视图DROP VIEW myview语句 如果我无法删除视图 因为其他对象仍然依赖于它 那么检查 postgres 列出的所有对象名称并保存它
  • Reactjs读取属性文件?

    我在寻找解决方案时遇到困难如何在reactJS中读取属性文件 我读过您可以使用模块 properties reader 但我似乎无法使要求工作 有简单的方法吗 例如 import React Component from react imp
  • Github - 需要有关发出拉取请求的帮助

    我分叉了一个项目 进行了更改 C1 并提出了仍待处理的拉取请求 一周后 我想提出另一个带有更改的拉取请求 C2 与此同时 上游 我分叉的地方 发生了很多变化 所以我想将我的 master 与上游同步 并且需要单独提供带有更改 C2 的拉取请
  • 类型或命名空间“Mvc”名称在命名空间“System.Web”中不存在

    我有一个使用 RazorEngine 生成电子邮件的类库 RazorEngine 使用 Mvc 我在我的库类中引用了 System Web Mvc 将其设置为复制本地 并且它存在于 Bin 文件夹中 但是我仍然得到这个例外 我让它工作的唯一