适用于与Razor Pages相关的问题,这是从ASP.NET Core 2.0开始的ASP.NET Core的一个功能。
400 从 Htmx 发布到 .Net Razor 页面的错误请求
我已经退出 FE 游戏有一段时间了,大约 4-5 年前,我专门从事 .Net 后端 API 开发,所以请原谅我,如果这是一个简单的项目,但它是一个使用 Razor Pages 和 H 的项目...
使用 POST 的 Javascript Fetch 始终返回状态 400
只需遵循 ChatGTP 和 Google 中的所有示例,但我第一次使用带有 POST 的 javascript fetch 总是返回 400。(我使用 GET 进行 fetch 工作正常,所以我不明白为什么 POST fa...
我有一个Asp.Net Core Razor Pages项目,我已经实现了一系列剃刀页面,其中一些,但目前我想“禁用/删除它们”,以便它们不可用...
我可以区分 ErrorMessage 和 Razor 页面中显示的错误文本吗
我有 Web 表单背景,并尝试学习 Razor 页面。在 Web 窗体中,我非常广泛地使用 asp:Validation 控件。这些验证控件使我可以选择指定...
ASP.NET Core MVC 8 DateTime 模型验证始终无效
我正在开发从 ASP.NET Core 3.1 版本到 ASP.NET Core MVC 8 的迁移项目。 一些软件包仍然是 3.1 版本: Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore 微软.AspNetCo...
如何使此 URL 模式在 ASP.NET Core 中可接受?
我正在使用 Razor 页面的 ASP.NET Core 项目中工作,我正在尝试制作此 URL 模式 /{客户名称}/表单/{页面} 可以接受的路线。您应该知道我使用的是 Razor Pages 而不是 MVC。
我一直在尝试使用Entity Frameword(CRUD)在ASP.NET Core、razor页面中添加一个脚手架项。我当前的目标框架是netcoreapp3.1。 我有以下软件包版本: 包括=&...
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" /> }
将元素从 Blazor 中的子页面返回分配给 MainLayout 组件
以blazor wasm项目的标准结构为例,MainLayout组件和razor页面由@page指令表示,也就是说,基本上我需要渲染一个元素
我正在将 Razor 组件集成到 Blazor Web assembly 项目中的 ASP.NET Core Razor 页面中,以保持客户端和服务器之间的 UI 一致。 这些组件之一是多...
ASP.NET [PageRemote] 无法与类一起使用。为什么?
这是带有 ASP.NET 身份注册页面 (.NET 8) 的 ASP.NET Razor 页面项目。 电子邮件检查 (PageRemote) 工作正常,但前提是 Email 属性不是 Input 类的成员 (
ASP.net core 5.0 Razor 页面重定向到新 IP
我正在开发基于 Razor Pages 的 Asp.net core 5.0 Web 服务器。 该网站托管一个配置页面,用户可以在其中更改当前服务器 IP,即
我有一个 Copy.cshtml 页面,它复制现有记录并允许用户基于现有记录创建新记录。通过创建新记录并返回索引,效果很好。
ASP.NET Core 8.0 Razor 页面:重写 _Layout.cshtml.css => {application}.styles.css 未找到 (404)
创建新的 .NET8.0 Razor Pages (ASP.NET Core) 项目后,我删除了 JQuery 和 Bootstrap 库。然后我编辑了_Layout.cshtml.css。运行项目时,我的 CSS 规则没有应用,b...
我有一个使用 asp.net 的 razor 页面服务器,我需要通过按下按钮来调用 api,我为此苦苦挣扎的时间比我愿意承认的要长,所以我只想给你代码。 ..
有关如何使用 Razor Pages 将一个数据库行复制到另一数据库行的一般指南
我有一个应用程序,用户希望能够输入客户的记录,然后将该记录复制到另一个客户。我想象在创建并保存记录后执行此操作。也许...
ASP.NET Webforms 到 ASP.NET Core Razor 页面
我有一些 ASP.NET Webforms,我需要开始转换为 ASP.NET Core Razor 页面。 下面我有一个关于其中一个页面当前如何运行的示例,以让您了解我正在做什么......
当 ASPNETCORE_ENVIRONMENT 设置为 Production 时,无法加载并置的 Javascript 文件
在 .NET 8 razor 页面应用程序中,当我将 ASPNETCORE_ENVIRONMENT 环境变量切换到 Production 时,我的应用程序工作正常,只是它不加载不存在的 javascript 文件...
带有 ASP.NET Core razor 页面的 Google 身份验证独立 docker
我遇到了一个问题:我有一个在 Docker 容器中运行的 ASP.NET Core 8 razor Pages Web 应用程序。 我的配置是使用 Google 身份验证,它在 docker 之外运行良好。 这是我的
在 Razor 页面中,我尝试将发票数据保存到 SQL Server 表 Sales,但是当您按下“保存发票”按钮时,没有任何反应,甚至没有错误消息,并且数据不是...