asp.net-core 相关问题

ASP.NET Core是一个用于构建Web和云应用程序的精简,可组合和跨平台的框架。它是GitHub上完全开源的。 ASP.NET核心应用程序可以在Windows上运行完整的.NET Framework或更小的.NET Core,也可以在Linux和MacOS上运行.NET Core和Mono。

Razor 视图中 foreach 中的表单:向所有元素显示验证

考虑以下 Razor 代码 foreach(Model.Persons 中的 Person p){ @Html.TextBoxFor(m => p.Name) @Html.ValidationMessageFor(m => p.Name) @Html。 考虑以下 Razor 代码 foreach(Person p in Model.Persons){ <form> @Html.TextBoxFor(m => p.Name) @Html.ValidationMessageFor(m => p.Name) @Html.TextBoxFor(m => p.Surname) @Html.ValidationMessageFor(m => p.Surname) <button type="submit">Save</button> </form> } 在处理后的.html中,每个Person将具有彼此相同的name属性。当验证不成功时,这会导致错误的行为:即使我只编辑其中一个人,每个人都会有一条错误消息。 解决此问题的最佳方法是什么? 我的帖子处理程序如下 [HttpPost] public IActionResult SavePerson(Person person){ // ... } 最好保持原样。 使用数据模型项索引可以解决这个问题: @model IList<Person> <form asp-action="SavePerson" method="post"> @for(int i=0; i < Model.Count(); i++) { <div> @Html.TextBoxFor(m => Model[i].Name) @Html.ValidationMessageFor(m => Model[i].Name) @Html.TextBoxFor(m => Model[i].Surname) @Html.ValidationMessageFor(m => Model[i].Surname) </div> <br> } <button type="submit">Save</button> </form> 将所有列表传递回控制器可能用于返回视图以显示错误: [HttpPost] public IActionResult SavePerson(List<Person> model) { if (ModelState.IsValid) { // Process data //... } // Show errors return View("Index", model); }

回答 1 投票 0

IIS 抛出错误:.NET 运行时位于 IP 0x00007FFA58796C1D (0x00007FFA58530000),退出代码为 0xe0004743

我们有一个托管在 IIS 中的 Web 应用程序,间歇性地出现以下错误,重新启动后问题得到解决。 应用程序: w3wp.exe CoreCLR 版本:8.0.424.16909 .NET版本:8.0.4 描述...

回答 1 投票 0

Html 在 ASP.NET Core Razor 页面中显示为纯文本

我正在开发 ASP.NET Core 6.0 MVC Razor 页面应用程序。在 Login.cshtml 页面上,当用户尝试使用无效凭据登录时,我想显示以下错误消息: 无效: 我正在开发 ASP.NET Core 6.0 MVC Razor 页面应用程序。在 Login.cshtml 页面上,当用户尝试使用无效凭据登录时,我想显示以下错误消息: Invalid: <b>User Name</b> and/or <b>Password</b> 问题是此消息显示为文本而不是 html,其中“用户名”和“密码”以粗体显示。 这是我的 C# 代码 Login.cshtml.cs: var invalidLogin = await LockOut(Input.UserUserName, Input.Password); if (!string.IsNullOrEmpty(invalidLogin)) { invalidLogin = WebUtility.HtmlEncode(invalidLogin); ModelState.AddModelError(string.Empty, invalidLogin); return Page(); } 如上所示,我什至尝试对消息进行 html 编码。仍然显示为文本, Invalid: &lt;b&gt;User Name&lt;/b&gt; and/or &lt;b&gt;Password&lt;/b&gt; 根据Google搜索,我已经验证页面源在顶部有这一行: <!DOCTYPE html> Html.Raw() 是一个可行的解决方案,因为您仅显示一些指示性信息。 登录.cshtml @model WebApplication26.Pages.LoginModel @{ ViewData["Title"] = "Log in"; } <h1>Log in</h1> <form method="post"> <div class="form-group"> <label asp-for="Input.UserName" class="control-label"></label> <input asp-for="Input.UserName" class="form-control" /> <span asp-validation-for="Input.UserName" class="text-danger"></span> </div> <div class="form-group"> <label asp-for="Input.Password" class="control-label"></label> <input asp-for="Input.Password" class="form-control" /> <span asp-validation-for="Input.Password" class="text-danger"></span> </div> <div class="form-group"> <button type="submit" class="btn btn-primary">Log in</button> </div> @if (ModelState.ErrorCount > 0) { <div class="validation-summary-errors text-danger"> @foreach (var error in ModelState.Values.SelectMany(v => v.Errors)) { @* <p>@error.ErrorMessage</p> *@ <p>@Html.Raw(error.ErrorMessage)</p> } </div> } </form> 登录.cshtml.cs using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; namespace WebApplication26.Pages { public class LoginModel : PageModel { [BindProperty] public InputModel Input { get; set; } public class InputModel { public string UserName { get; set; } public string Password { get; set; } } public async Task<IActionResult> OnPostAsync() { var invalidLogin = await LockOut(Input.UserName, Input.Password); if (!string.IsNullOrEmpty(invalidLogin)) { // Add the error message without encoding it ModelState.AddModelError(string.Empty, "Invalid: <b>User Name</b> and/or <b>Password</b>"); return Page(); } return RedirectToPage("Index"); } private Task<string> LockOut(string userName, string password) { if (userName != "correctUser" || password != "correctPassword") { return Task.FromResult("Invalid: <b>User Name</b> and/or <b>Password</b>"); } return Task.FromResult<string>(null); } } }

回答 1 投票 0

如何在 Blazor WebApp 8 中配置静态文件 mimetypes

在 Blazor 服务器端 .net 7 应用程序中,如果您需要处理某些特定的静态文件类型(例如 Outlook .msg 或将被视为应用程序/八位字节流的文件),则必须配置...

回答 1 投票 0

我无法在 ASP.NET Core MVC 中添加视图

使用 ASP.NET Core 6.0 MVC,我尝试创建一个具有 n 层架构的 Web 项目。尝试从控制器添加视图时遇到以下问题。几个小时后

回答 3 投票 0

ASP.NET Core操作方法不返回最多2位数字的ID(即1、22、66),而是返回3位数字(即111、222、666)

我有一个操作方法Contact,其返回类型(int)并以(int id)作为参数。 问题是,在这条路线上,当我传递两位数字的 id 时,但它没有显示,但它显示带有 th 的 id...

回答 1 投票 0

ASP.NET Core:使用自定义内容丰富 AAD 令牌声明?

在 ASP.NET Core 应用程序中,我需要使用来自应用程序数据库的自定义令牌来丰富 AAD 令牌声明,并且我已经看到了实现 IClaimsTransformation 接口的代码...

回答 1 投票 0

System.Net.Sockets.SocketException:尝试 MigrateAsync 并通过 docker-compose 运行应用程序时,名称或服务未知

我创建了一个托管服务,该服务应该在应用程序启动时将迁移应用到 postgres: 内部类DatabaseInitializer:IHostedService { 私有只读 IServiceProvider

回答 1 投票 0

如何将 Serilog 连接到 .NET Aspire

我一直在努力尝试让 Serilog 将遥测数据发送到 .NET Aspire 仪表板。 Aspire 仪表板打开后,“结构化日志”选项卡始终为空。 如果我注释掉 Serilog

回答 1 投票 0

如何使用unitOfWork和存储库模拟数据库访问(.NET Core 6)

在 PUT 路由中,我有一个实用方法,我们可以在其中放置业务逻辑(因此,当我们需要完成路由所做的工作时,我们可以调用该方法而不是路由)。 我不明白我怎么能假...

回答 1 投票 0

.net core json 响应差异 chrome firefox

我编写了一个最小的 Web API。 它包含以下代码: app.MapGet("/api/getLogs", async (HttpContext context) => { context.Response.Headers.ContentType = "application/json"...

回答 1 投票 0

解析具有不同结构(从 XML 到列表)的数据<string>

我有一个表示加载到 Web 浏览器中的单个客户端的 XML 数据,如下所示: ...

回答 2 投票 0

解析具有从 XML 到列表的各种结构的数据<string>

我有一个表示加载到 Web 浏览器中的单个客户端的 XML 数据,如下所示: 卡尔...

回答 1 投票 0

如何设置 MicrosoftIdentity 控制器 SignOut 以重定向到当前页面

我正在构建一个带有 MicrosoftIdentity 登录/注销的 ASP.Net Core 页面。 我的 _LoginPartial 看起来像这样: 如果用户未登录,则会显示“登录”项 如果用户已登录,则...

回答 1 投票 0

.NET Core 8.0 RegularExpression 属性始终显示默认错误消息

这是我的控制器操作方法,我尝试使用正则表达式验证字符串,条件有效,但它始终显示默认错误消息而不是自定义消息。 [呃...

回答 1 投票 0

允许两个特定端点跨原点。 ASP.NET Core

我有一个 ASP.NET Core,其 cors 初始化如下: 私有常量字符串AllowLocalApp =“_myAllowLocalApp”; string[] corsEnabledOrigins = configuration.GetSection("CORSEnabled&q...

回答 1 投票 0

如何在购物车视图中使用选定选项创建选择元素

在 ASP.NET Core 5 MVC 购物车 Razor 视图中用于创建购物车布局选择器。 在 ASP.NET MVC 4.7 中它工作正常,但在设置所选选项的 .NET Core 行中 在 ASP.NET Core 5 MVC 购物车 Razor 视图中用于创建购物车布局选择器。 在 ASP.NET MVC 4.7 中它工作正常,但在设置所选选项的 .NET Core 行中 <option value="List" @(Model.LocatorViewModel.CartLayout == CartLayout.List ? "selected" : "" )> 在 VS 2019 中的 razor 编辑器中显示语法错误: Razor 中创建 select 元素 selected 属性的属性方法是什么? 使用Bootstrap 3。 <div id="collapseOne" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOne"> <div class="panel-body"> <label> @await I.I("Display mode") <select name="cartlayout" class="form-control" onchange="this.form.submit()"> <option value="List" @(Model.LocatorViewModel.CartLayout == CartLayout.List ? "selected" : "" )> @await I.I("List") </option> <option value="Thumb" @(Model.LocatorViewModel.CartLayout == CartLayout.Thumb ? "selected" : "" )> @await I.I("Thumbnails") </option> </select> </label> </div> </div> 如错误消息所示,'OptionTagHelper' 元素的属性声明区域中不能有 C#。 在您共享的代码中,似乎 option 在您的场景中就像普通 HTML <option> 一样工作。如果是这样,您可以尝试将 @removeTagHelper 应用于特定视图,这将有助于从视图中删除指定的标记帮助程序。 @removeTagHelper Microsoft.AspNetCore.Mvc.TagHelpers.OptionTagHelper, Microsoft.AspNetCore.Mvc.TagHelpers 测试结果 您可以使用 选择退出字符“!”在元素级别禁用标记帮助程序,这将允许在元素的声明区域中使用 C#: <!option value="List" @(Model.Test ? "selected" : "")>Text</!option>

回答 2 投票 0

为什么显示没有选择文件或没有项目导入使用剃刀页面?

如何修改代码以使用复选框并仅针对选定的项目调用 PrintCartonLabel?可以在选择项目后添加复选框并单击打印按钮,然后显示无...

回答 1 投票 0

网页需要忽略鼠标点击

我创建了一个 blazor 页面来测试熟练程度。 想象一个打字程序。 但有时,学生会碰撞鼠标或触控板,导致编辑框失去焦点,从而使测试无效。 我……

回答 1 投票 0

为所有 Minimal API 端点设置相同的“生成”响应

在 .NET 8 中,在具有最小 API 的项目中,是否可以通过一次调用方法在所有端点上设置状态代码,例如 401 Unauthorized,例如: app.MapGroup("测试&...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.