razor-pages 相关问题

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

尝试在 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

如何更新记录并返回筛选索引页

我有一个 Copy.cshtml 页面,它复制现有记录并允许用户基于现有记录创建新记录。通过创建新记录并返回索引,效果很好。

回答 1 投票 0

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...

回答 1 投票 0

按下按钮时从剃须刀页面调用 API

我有一个使用 asp.net 的 razor 页面服务器,我需要通过按下按钮来调用 api,我为此苦苦挣扎的时间比我愿意承认的要长,所以我只想给你代码。 ..

回答 1 投票 0

有关如何使用 Razor Pages 将一个数据库行复制到另一数据库行的一般指南

我有一个应用程序,用户希望能够输入客户的记录,然后将该记录复制到另一个客户。我想象在创建并保存记录后执行此操作。也许...

回答 1 投票 0

ASP.NET Webforms 到 ASP.NET Core Razor 页面

我有一些 ASP.NET Webforms,我需要开始转换为 ASP.NET Core Razor 页面。 下面我有一个关于其中一个页面当前如何运行的示例,以让您了解我正在做什么......

回答 1 投票 0

当 ASPNETCORE_ENVIRONMENT 设置为 Production 时,无法加载并置的 Javascript 文件

在 .NET 8 razor 页面应用程序中,当我将 ASPNETCORE_ENVIRONMENT 环境变量切换到 Production 时,我的应用程序工作正常,只是它不加载不存在的 javascript 文件...

回答 1 投票 0

带有 ASP.NET Core razor 页面的 Google 身份验证独立 docker

我遇到了一个问题:我有一个在 Docker 容器中运行的 ASP.NET Core 8 razor Pages Web 应用程序。 我的配置是使用 Google 身份验证,它在 docker 之外运行良好。 这是我的

回答 1 投票 0

我无法在 razor 页面 .NET 8 中保存发票数据

在 Razor 页面中,我尝试将发票数据保存到 SQL Server 表 Sales,但是当您按下“保存发票”按钮时,没有任何反应,甚至没有错误消息,并且数据不是...

回答 1 投票 0

我无法在razor页面中保存发票数据.Net8

在razor页面中,我试图将发票数据保存到sql表销售中,但是当您按下“保存发票”按钮时,没有任何反应,甚至没有错误消息,并且我检查了数据未保存

回答 1 投票 0

[必需]数据注释最合适的默认字符串值是什么?

我正在学习 C# .NET 8 Razor Pages 的模型绑定和验证。我设置了一个简单的输入模型来测试验证(来自 ASP.NET Core Razor Pages in Action,Mike Brind): 公开课

回答 1 投票 0

如何在页面加载时初始化类。 (ASP.Net Core(Razor 页面))

我的代码有问题,页面加载时没有调用我的 OnGet() 方法。现在我可能对 OnGet() 方法应该如何工作是错误的,但我似乎无法弄清楚......

回答 1 投票 0

Razor-pages 表单没有点击 post 方法

我的帖子表单不起作用 - C# 类中的方法甚至没有执行。 我尝试了一些我发现的解决方案,但仍然无法处理。 我的简单视图ReportBug.cshtml: @页 @模型报告 &l...

回答 2 投票 0

如何保留razor页面的url?

我是新手。 我知道我可以设置 url UseUrls() 来设置网站的 url。或者在IIS中设置 现在我想使用 razor 页面发布一个免费网站,但我希望用户只使用 'loc...

回答 2 投票 0

升级到Datatables.net v2.0后自定义CSS和BS5冲突

我一直在使用 Datatables.net v1.13.11 和 Themesbrand 提供的自定义 BS5 模板 (https://themesbrand.com/velzon/html/default/tables-datatables.html)。升级到 v2.0 后,我有

回答 1 投票 0

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