问题标签 [asp.net-core-mvc-2.1]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
844 浏览

c# - ASPNet Core 2.1 加载预编译视图的正确方法

我正在尝试向我的应用程序添加类似功能的插件,并且很难找到预编译的视图。所以可以说我有一个 Razor 类库,它编译为 plugin.dll 和 plugin.views.dll 我已成功加载并添加 plugin.dll

然后将程序集添加到

然后我添加插件基本路径,以便发现其正常视图

以上所有工作都很好,除了我只能使用物理位置的视图而不是 plugin.views.dll 中的视图

添加views.dll并发现视图的正确方法是什么?

0 投票
2 回答
545 浏览

c# - 迁移到 ASP.Net Core Identity 2.1 后无法添加迁移

我将我的应用程序从 .Net Core 1.1、EF Core 1.1、ASP.Net Identity 1.1 迁移到所有版本 2.1。我还将我自己的用户(当前称为Diver)与 IdentityUser 分开,因此我不需要向 ASP.Net Idenentity-EF 提供自定义用户类。

当我现在尝试添加初始迁移时:

我得到错误:

我的上下文如下所示:

完整的源代码可以在GitHub上找到。

我已经尝试了很多东西,比如为 Identity 实体添加忽略语句。没有任何效果,我被卡住了。

有什么想法会出错吗?

0 投票
1 回答
688 浏览

asp.net - TempData 没有在生产服务器 [ASP.NET CORE 2.1] 上保留数据

我有一个问题,我搜索了文档以查看可能是我犯了错误或其他什么,但没有找到我正在寻找的答案。我的问题是,保存产品后,我使用 PRG(Post-Redirect-Get) 模式,因此用户在按下浏览器后退按钮时不会重新提交表单。我使用 TempData 显示一次性消息,因为它在删除之前将数据保留到下一个请求。此方法在我的开发环境中运行良好。但是在我将应用程序部署到生产服务器后,虽然操作方法遵循 PRG 模式并成功返回,但 TempData 没有持久化,也没有显示消息。

这是我显示消息的方式:

这是方法示例:

任何帮助,将不胜感激。谢谢!

0 投票
1 回答
1330 浏览

asp.net-core-mvc-2.0 - 二进制图像无法在视图 asp.net core 2.x 上显示

我将图像上传到具有 byte[] 格式的表中。我的问题是,当我在视图上检索它时,图像不会显示。

模型

控制器

看法

0 投票
3 回答
1414 浏览

asp.net-mvc-5 - 模型绑定不适用于 .net Core 2.1 中的属性路由

我可以让模型绑定在没有属性路由的情况下正常工作 - 例如:

但我不确定如何将模型传递给处理它的方法。当我提交表单时,它运行原始方法,而不是 [HttpPost] 下的方法 - 它一次又一次地发布到原始方法( // Do stuff 是 - 当我这样做时:

使用属性路由时如何正确绑定模型?

我搜索了谷歌 - 我发现了一些没有帮助的东西,例如: https ://www.red-gate.com/simple-talk/dotnet/asp-net/improved-model-binding-asp-net-core/

谢谢

更新

我还注意到 CustomerId 被附加到 Url,即使在表单发布之后也是如此。我不认为这发生在 MVC 5 中并且不需要这个,CustomerId 隐藏在页面中。

我该如何删除它(它导致路由与 [HttpPost] 装饰方法不匹配。

0 投票
1 回答
1183 浏览

c# - ASP.net Core 2.1 MVC Validation Tag Helper - 输出 HTML(即停止 HTML 编码)

我有一个注册页面,如果用户键入一个已经注册的电子邮件地址,我需要输出一个链接让他们登录验证消息。

但是,验证标签助手对错误消息进行 HTML 编码,因此链接显示为 HTML。

在视图中:

在控制器中:

如何防止验证器 HTML 编码,或以其他方式在验证消息中正确显示 HTML 链接?

我在 Google 上找不到任何关于此的内容。

谢谢。

0 投票
1 回答
700 浏览

c# - 分页和页面冲突 - ASP.Net Core Razor Pages 与 MVC 控制器方法分页冲突

在一个带有 Angular 6 spa 项目的 ASP.Net Core 2.1 中,我使用这个 AccountController.cs 方法返回了一个分页的用户列表:

在 startup.cs 我使用 MVC 如下:

如上所述的代码工作正常,但是当我想在我的项目中开始使用 Razor Pages 时,我创建了一个新的标准 Razor Pages 项目模板并将其 Pages 文件夹添加到当前项目,但只要我这样做并运行项目我收到错误,如果我再次移出 Pages 文件夹,项目开始运行而没有错误。

这是错误描述:

RouteCreationException:属性路由信息出现以下错误:

行动:'MyApiProject.Controllers.AccountController.GetUsers (MyApiProject)'

错误:属性路由“api/Account/users/{page:int}/{pageSize:int}”不能包含名为“{page}”的参数。在路由模板中使用 '[page]' 插入值 ''

方法代码无需更改,因为它与现有的 Angular spa 配合得很好。那么解决方法是什么?

0 投票
1 回答
494 浏览

c# - 我应该如何通过 Autofac.Dependency 注入库将参数传递给 Autofac 容器以进行自动依赖解析

这是问题所在。我目前正在使用 Autofac 在我的 AspNetCore MVC 应用程序中使用 TypedParameters 解决所有依赖项,但我认为我做错了什么,我可以做得更干净。

以下是以下代码示例

  • 服务的配置。
  • 要注入的示例存储库
  • 当前使用的方法
  • 我想做的事

配置:

样本库:

目前我得到以下存储库:

我希望它是那样的

所以基本上问题是:如何在构造函数中注入类型略有不同(更抽象)的已注册类型?

0 投票
0 回答
399 浏览

jquery - 使用 RedirectToAction 传递 TempData 在 Visual Studio 中有效,但在生产中无效

Web 应用程序 ASP MVC Core 2.1 我有两个具有父子关系的模型,它们是 Course 和 CourseEdition;一个课程可以有多个版本。

我显示课程详细信息的页面还显示了其版本列表。我使用 JQuery 用该版本的详细信息填充同一页面:单击其中一个版本时,我有一个 DIV 填充了它的详细信息数据。我想以重定向到版本详细信息来结束某些操作(即在一个版本中注册一个或多个人)。

我已经建立了这样的机制:

在控制器操作“RegisterPeople”中,我将 TempData 设置为要重定向到的版本的 ID,然后重定向到 CourseController 中的 Details 操作。

在这里(课程控制器,详细信息操作)我读取 TempData 并将其值复制到 ViewBag 中。

在详细信息视图中,我有一个 DIV,其数据属性由 ViewBag 值(版本 ID)填充,

现在,在 _CourseScript.cshtml 中,当单击此 div 时会触发一个 JQuery 事件处理程序,该处理程序具有填充版本 div 的魔力。

当我使用 Visual Studio 进行开发时,这非常有效。当我部署到远程 IIS 服务器时,TempData 填写在“注册”操作中,但在输入“详细信息”操作时发现它为空。

谁是罪魁祸首?为什么 TempData 在开发模式下持续存在并在生产中消失?

编辑 1

使用会话

在 Startup.cs 中

0 投票
1 回答
106 浏览

asp.net-core - ModelState.IsValid 正在验证引用的实体

我有以下实体:

正如你所看到的,这个类有一个属性,它引用了一个名为 Etapa 的实体

此类 Etapa 对属性 Nombre 进行了验证。现在关于 Ambiente 类,在提交数据以插入数据库时​​,我在 Insertar Action 中使用此代码:

当此代码到达 ModelState.IsValid 语句时,它会抛出 false 并出现以下消息:

“Especifique un nombre de Etapa”

这是我的 Etapa 类的属性 Nombre 的文本。

在此处输入图像描述

当我从 Insertar Action 中的参数快速观察我的变量环境时,我看到以下内容:

在此处输入图像描述

这个 Etapa 实体用于在我的视图中填充下拉列表。数据库中已经存在所有值,因此我不打算向该实体添加记录。

在此处输入图像描述

我不知道如何绕过这个引用实体 Etapa 的验证。