razor-pages 相关问题

适用于与Razor Pages相关的问题,这是从ASP.NET Core 2.0开始的ASP.NET Core的一个功能。

在 ASP.NET Core razor 页面中跨帖子和重定向保留现有查询字符串的最简单方法是什么?

我有一个 ASP.NET Core razor 页面和模型,它使用查询字符串来过滤搜索结果并通过 GET 进行分页。 考虑用户执行搜索以到达此页面: https://localhost/Users?se...

回答 2 投票 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

如何在 Razor 页面 Create.cshtml 上显示单独表中的值

我有一个创建页面来为我的主管模型创建数据。它看起来像这样: Supervisor 类在这里: 使用 System.ComponentModel.DataAnnotations; 使用 System.ComponentModel.DataAnnotati...

回答 1 投票 0

Azure AD Microsoft 帐户客户端是公开的,因此不应显示“client_assertion”和“client_secret”

我遇到以下问题: 异常:OAuth 令牌端点失败:状态: 正文:{“error”:“invalid_client”,“error_description”:“AADSTS700025:客户端是p...

回答 2 投票 0

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

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

回答 1 投票 0

如何在razor页面身份中将RedirectToPage更改为ChangePassword

我无法对 Razor Pages 应用程序中身份文件夹中的任何页面使用 RedirectToPage。 如果我使用: return RedirectToPage("/Identity/Account/Manage/ChangePassword"); 我得到的是...

回答 2 投票 0

无法在 Razor 页面中保存

我有一个代码可以检索以前保存的发票数据,还有一个代码可以在更改价格或数量后再次保存它。问题是,当我按下保存按钮时,没有任何反应,没有消息

回答 1 投票 0

ASP.NET Core Razor 页面登陆索引页面而不是登录页面

我使用 ASP.NET Core 创建了一个 Razor Pages 应用程序。我的起始页面应该是我使用 ASP.NET Core 身份验证创建的登录页面。当我构建和测试时,一切都按预期工作......

回答 1 投票 0

400 从 Htmx 发布到 .Net Razor 页面的错误请求

我已经退出 FE 游戏有一段时间了,大约 4-5 年前,我专门从事 .Net 后端 API 开发,所以请原谅我,如果这是一个简单的项目,但它是一个使用 Razor Pages 和 H 的项目...

回答 1 投票 0

使用 POST 的 Javascript Fetch 始终返回状态 400

只需遵循 ChatGTP 和 Google 中的所有示例,但我第一次使用带有 POST 的 javascript fetch 总是返回 400。(我使用 GET 进行 fetch 工作正常,所以我不明白为什么 POST fa...

回答 1 投票 0

Asp.Net Core 禁用/删除特定 Razor 页面

我有一个Asp.Net Core Razor Pages项目,我已经实现了一系列剃刀页面,其中一些,但目前我想“禁用/删除它们”,以便它们不可用...

回答 1 投票 0

我可以区分 ErrorMessage 和 Razor 页面中显示的错误文本吗

我有 Web 表单背景,并尝试学习 Razor 页面。在 Web 窗体中,我非常广泛地使用 asp:Validation 控件。这些验证控件使我可以选择指定...

回答 1 投票 0

ASP.NET Core MVC 8 DateTime 模型验证始终无效

我正在开发从 ASP.NET Core 3.1 版本到 ASP.NET Core MVC 8 的迁移项目。 一些软件包仍然是 3.1 版本: Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore 微软.AspNetCo...

回答 1 投票 0

如何使此 URL 模式在 ASP.NET Core 中可接受?

我正在使用 Razor 页面的 ASP.NET Core 项目中工作,我正在尝试制作此 URL 模式 /{客户名称}/表单/{页面} 可以接受的路线。您应该知道我使用的是 Razor Pages 而不是 MVC。

回答 1 投票 0

尝试在 Razor Pages 中添加支架项目时出错

我一直在尝试使用Entity Frameword(CRUD)在ASP.NET Core、razor页面中添加一个脚手架项。我当前的目标框架是netcoreapp3.1。 我有以下软件包版本: 包括=&...

回答 3 投票 0

Asp.net Core Razor 页面 - 自定义 TagHelpers 和样板 CRUD 代码

我确信这个问题以前已经遇到过很多次了。 我有很多 CRUD 表单,所以我有很多重复的样板代码。 例如 我确信这个问题以前已经遇到过很多次了。 我有很多 CRUD 表单,所以我有很多重复的样板代码。 例如 <div class="form-group"> <label asp-for="MyModel.Property1" class="control-label"></label> <input asp-for="MyModel.Property1" class="form-control" /> <span asp-validation-for="MyModel.Property1" class="text-danger"></span> </div> 上述代码针对每个属性、每个表单一次又一次地重复。看起来总是一样的(例如,如果它是一个下拉菜单)。 我已经成功地使用 EditorTemplates 获得了可重复运行的东西,但这感觉很笨拙。我需要每个属性类型等不同的模板。 这需要运行: @Html.EditorFor(m => m.MyModel.Property1, "_MyString") 我觉得@Html。在 Razor Pages 中几乎不鼓励,解决方案应该在其他地方。 我花了太长时间寻找自定义 TagHelper 设置和工作,但我认为这是不可能的。您可以创建自己的 TagHelpers 并使用 TagBuilder,但是您会丢失 InputTagHelper 等内部的所有逻辑。 https://github.com/dotnet/aspnetcore/blob/main/src/Mvc/Mvc.TagHelpers/src/InputTagHelper.cs 它需要利用输入和标签标签助手,因为有很多逻辑,例如根据上面的链接,输入标签助手中的属性类型。您似乎无法使用这些。 我正在寻找一种真正通用的方法来减少我的样板代码,并希望可能有灵丹妙药? 编辑说 - 您过去也可以在 MVC 中执行此操作,但您无法通过 Razor Pages 执行此操作,而无需创建每个模型。 public static IHtmlContent MyEditorFor<TModel, TResult>( this IHtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TResult>> expression, string templateName = "MyDefaultTemplateName") { return htmlHelper.EditorFor(expression, templateName); } 这是您可以遵循的完整工作演示: 创建自定义标签助手 [HtmlTargetElement("div-group", Attributes = "asp-for")] public class DivGroupTagHelper : TagHelper { private const string ForAttributeName = "asp-for"; private IHtmlGenerator _htmlGenerator; public DivGroupTagHelper(IHtmlGenerator htmlGenerator) { _htmlGenerator = htmlGenerator; } [HtmlAttributeName(ForAttributeName)] public ModelExpression For { get; set; } [HtmlAttributeName("class")] public string CssClass { get; set; } [HtmlAttributeName("label-class")] public string LabelCssClass { get; set; } [HtmlAttributeName("input-class")] public string InputCssClass { get; set; } [HtmlAttributeName("validation-class")] public string ValidationCssClass { get; set; } [HtmlAttributeNotBound] [ViewContext] public ViewContext ViewContext { get; set; } public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { output.TagName = "div"; output.Attributes.SetAttribute("class", "form-group " + CssClass); // Create a context and output for the label var labelContext = new TagHelperContext(new TagHelperAttributeList(), new Dictionary<object, object>(), Guid.NewGuid().ToString("N")); var labelOutput = new TagHelperOutput("label", new TagHelperAttributeList(), (useCachedResult, encoder) => Task.FromResult<TagHelperContent>(new DefaultTagHelperContent())); var labelTagHelper = new LabelTagHelper(_htmlGenerator) { For = For, ViewContext = ViewContext }; await labelTagHelper.ProcessAsync(labelContext, labelOutput); labelOutput.AddClass("control-label", HtmlEncoder.Default); if (!string.IsNullOrEmpty(LabelCssClass)) labelOutput.AddClass(LabelCssClass, HtmlEncoder.Default); //Create a context and output for the input var inputContext = new TagHelperContext(new TagHelperAttributeList(), new Dictionary<object, object>(), Guid.NewGuid().ToString("N")); var inputOutput = new TagHelperOutput("input", new TagHelperAttributeList(), (useCachedResult, encoder) => Task.FromResult<TagHelperContent>(new DefaultTagHelperContent())); var inputTagHelper = new InputTagHelper(_htmlGenerator) { For = For, ViewContext = ViewContext }; await inputTagHelper.ProcessAsync(inputContext, inputOutput); inputOutput.AddClass("form-control", HtmlEncoder.Default); if (!string.IsNullOrEmpty(InputCssClass)) inputOutput.AddClass(InputCssClass, HtmlEncoder.Default); // Create a context and output for the validation message var validationContext = new TagHelperContext(new TagHelperAttributeList(), new Dictionary<object, object>(), Guid.NewGuid().ToString("N")); var validationOutput = new TagHelperOutput("span", new TagHelperAttributeList(), (useCachedResult, encoder) => Task.FromResult<TagHelperContent>(new DefaultTagHelperContent())); var validationTagHelper = new ValidationMessageTagHelper(_htmlGenerator) { For = For, ViewContext = ViewContext }; await validationTagHelper.ProcessAsync(validationContext, validationOutput); validationOutput.AddClass("text-danger", HtmlEncoder.Default); if (!string.IsNullOrEmpty(ValidationCssClass)) validationOutput.AddClass(ValidationCssClass, HtmlEncoder.Default); // Append the generated content to the output output.Content.AppendHtml(labelOutput); output.Content.AppendHtml(inputOutput); output.Content.AppendHtml(validationOutput); } } 在您的 _ViewImports.cshtml 文件中添加 Tag Helper 注册 @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers @addTagHelper *, YourNamespace 在 Razor 页面中使用自定义标签帮助程序 @page @model IndexModel <form method="post"> <div-group asp-for="Password"></div-group> <div-group asp-for="Email"></div-group> <input type="submit" value="Create"/> </form> @section Scripts { <partial name="_ValidationScriptsPartial" /> }

回答 1 投票 0

将元素从 Blazor 中的子页面返回分配给 MainLayout 组件

以blazor wasm项目的标准结构为例,MainLayout组件和razor页面由@page指令表示,也就是说,基本上我需要渲染一个元素

回答 1 投票 0

是否可以将值从 Razor 组件传递到 Razor 页面?

我正在将 Razor 组件集成到 Blazor Web assembly 项目中的 ASP.NET Core Razor 页面中,以保持客户端和服务器之间的 UI 一致。 这些组件之一是多...

回答 1 投票 0

ASP.NET [PageRemote] 无法与类一起使用。为什么?

这是带有 ASP.NET 身份注册页面 (.NET 8) 的 ASP.NET Razor 页面项目。 电子邮件检查 (PageRemote) 工作正常,但前提是 Email 属性不是 Input 类的成员 (

回答 1 投票 0

ASP.net core 5.0 Razor 页面重定向到新 IP

我正在开发基于 Razor Pages 的 Asp.net core 5.0 Web 服务器。 该网站托管一个配置页面,用户可以在其中更改当前服务器 IP,即

回答 1 投票 0

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