适用于与Razor Pages相关的问题,这是从ASP.NET Core 2.0开始的ASP.NET Core的一个功能。
如何在 Razor Pages 中自定义本地化提供程序(.resx 到数据库)
我正在将 .NET Framework 4.8 中的 ASP.NET Web 窗体迁移到 .NET 5 中的 Razor Pages 应用程序 在我的 ASP.NET Web Forms 网站中,我已将翻译部分移至数据库
我是新来的。我正在开发一个网上商店项目。在项目中,我有一个名为 Product 的模型,它与 Product-Color 模型中名为 Color 的模型具有多对多关系。我想要...
Razor Pages 中部分标签助手中的“for”和“model”之间的主要区别是什么?
我正在学习 Razor Pages 标签帮助程序并尝试了解部分标签帮助程序的工作原理。我注意到可以使用两个不同的属性将数据传递到部分:for 和 model。 对于:“对于
RedirectToPage("Companies") 将重定向到 /Pages/Companies.cshtml (从 MVC 控制器) 但是如果想重定向到此页面 /Areas/MyArea/Pages/Companies.cshtml 该怎么办? 所有这些和很多
为什么我的 RedirectToAction 会导致 InvalidOperationException 错误?
我有一个页面位于: 称为行动的区域 称为消息的控制器 一种称为索引的方法 当我登录到我的应用程序时,我会转到 HomeController,然后它会像这样重定向我: 酒吧...
为什么我的 RedirectToAction 会导致 InvalidOperationException 错误?
我有一个页面位于: 称为行动的区域 称为消息的控制器 一种称为索引的方法 当我登录到我的应用程序时,我会转到 HomeController,然后它会像这样重定向我: 酒吧...
我的“区域”部分下有一个 Index.cshtml Razor 页面。 我正在尝试使用以下代码重定向到该页面。 返回 RedirectToPage("/Index", new { 区域 = BusinessType.Stora...
我正在使用 ASP.NET Core 8 Razor 页面。我在同一路径文件夹中有几个页面,如下所示: /应用程序/管理员/订单/详细信息.cshtml /应用程序/管理员/订单/Listing.cshtml /应用程序/管理员/订单/Print.cshtml ...
向默认 Index.cshtml RazorPages ASP.NET Core 2.1.0 添加一个属性
我在一个项目中使用 ASP.NET Core 2.1.0,我想向默认脚手架 Index.cshtml 页面添加一个额外的属性。 这是我的实体 - 请建议: 公开课角色 { 公共整数...
如何在 ASP.NET Core Razor 页面中使用 if else 条件运算符
在我的 ASP.NET Core 5 razor 页面应用程序中,我有以下正在运行的代码: @Html.DisplayFor(modelItem => item.IsComplete) 它显示禁用的复选框,因为 IsComplete 是
如何使用BindProperty绑定HTML select元素的复杂属性
假设我有以下型号 公共类我的模型{ 公共ProgramModel(Guid ID,字符串名称,字符串描述,货币货币){ id = id; 姓名=姓名; 描述...
如何使用asp.net core razor Pages在CKEditor 5中上传图像
ClassicEditor.create(document.querySelector('#News_Body'), { 语言: 'fa', 查找器:{ 上传网址: '网址' } }).catch(错误=> { 控制台.错误(错误); }); 我有一个 Razor 页面我...
Python.NET:Py.GIL 线程在 ASP.NET Core Razor 页面中加载需要很长时间
如标题所示 - OnGet 输出语句出现,但“到达此处”需要很长时间才能出现在 Razor 页面之一中: Index.cs.html.cs: 公共无效OnGet(){ 控制台。
Python.NET:Py.GIL 线程在 ASP.NET Core Razor 页面中加载需要很长时间
如标题所述 出现“On get”输出语句,但“Reached line here”需要很长时间才能出现在 Razor 页面之一中 // Index.cs.html.cs 公共无效 OnG...
如何列出 .NET Razor Pages 应用程序中的所有页面?
是否可以获取 .NET 5 Razor Pages 应用程序中所有页面的列表? 我之前在 MVC 和 Blazor 中通过获取应用程序中所有类型的列表并按其基础进行过滤来完成此操作
在 ASP.NET Core Razor 页面中填充下拉列表时出现空引用异常
我是 ASP.Net core 的新手。我正在尝试从 Instructor 模型填充类 Createmodel 中的下拉列表,并收到“空引用”异常。 这是 cshtml.cs 文件中的代码:
Razor 页面 <select asp-for> 作为空值提交
我无法获取 使用 asp 表单提交数据的选项。我的 TestController 中有一个值 (examDetails),它是 Exam 对象的实例。我正在编辑... 我无法获取 <select> 选项来使用 asp 表单提交数据。我的 examDetails 中有一个值 (TestingController),它是 Exam 对象的实例。我正在为这些考试开发一个编辑页面,该页面使用外部 API 作为单独项目的一部分来与数据库进行交互。 我能够成功使用输入框从 Edit.cshtml 更改 examDetails,但是一旦我尝试使用 SelectList,提交的值始终是 null。如果我将其中一个 SelectList 字段设置为 [Required] 并选择了一个值,则当我提交表单时,该字段会显示为 null。 <form asp-page-handler="Customer" method="get"> <div class="form-group"> <label asp-for="examDetails.Type" class="control-label"></label> <select asp-for="examDetails.Type" asp-items="@FERazor.Controller.TestingController.TypeSL" name="TypeNameTest" class="form-control"> </select> <span asp-validation-for="examDetails.Type" class="text-danger"> </span> </div> <div class="form-group"> <input type="submit" value="Save" class="btn btn-default" /> </div> </form> 当我检查正在运行的 html 页面时,它实际上确实有一个值。如果我提交这个来表示 OnPost 作为参数,我确实会得到该值。 <select name="TypeNameTest" class="form-control" id="examDetails_Type"> <option selected="selected" value="Final">Final</option> <option value="Midterm">Midterm</option> <option value="No Exam">No Exam</option> <option value="Test">Test</option> </select> 我遇到了同样的问题,通过添加 asp-for 和 id html 属性解决了。
我正在尝试在提交之前进行验证。 我不想通过放置这些 DataAnnotations 来在模型上完成此操作 所以我有一个这样的表格 我正在尝试在提交之前进行验证。 我不想通过放置这些 DataAnnotations 来在模型上完成此操作 所以我有这样的表格 <form id="MyForm" method="post" asp-page-handler="C#MethodForSaving" onsubmit="return validateForm(event)"> <div class="form-group"> <label asp-for="ModelExample.Name"></label> <textarea id="mytextarea" class="form-control" asp-for="ModelExample.Name" rows="10" placeholder="Enter Name"></textarea> </div> <div class="form-group"> <label asp-for="ModelExample.Name2"></label> <textarea id="mytextarea" class="form-control" asp-for="ModelExample.Name2" rows="10" placeholder="Enter Name"></textarea> </div> <div class="form-group"> <label asp-for="ModelExample.Name3"></label> <textarea id="mytextarea" class="form-control" asp-for="ModelExample.Name3" rows="10" placeholder="Enter Name"></textarea> </div> <button type="submit" class="btn btn-primary">Save</button> </form> 我的 JavaScript: function validateForm(event) { const form = document.getElementById('MyForm'); let textAreas = form.querySelectorAll('textarea'); let allFilled = true; for (let i = 0; i < textAreas.length; i++) { if (textAreas[i].value.trim() === "") { allFilled = false; break; } } if (!allFilled) { alert("All the Requirements are required."); event.preventDefault(); return false; } return true; } 现在我遇到的问题是,如果表单内部带有数据,并且您尝试清除一个文本区域并尝试单击“保存”按钮,它会重新加载页面,并且在导航到时不会显示警报和所有其他传递的 ID他们迷失了这一页。当从这些文本区域之一删除输入并尝试保存而不收到警报而只是重新加载页面时,我可能在尝试验证这些文本字段方面做错了什么。 这是因为当您单击该按钮时,它仍然会转到您使用 OnPost 定义的 asp-page-handler="C#MethodForSaving"。我的解决方案是为提交按钮添加单击事件处理程序。 同时,当您使用 asp-for="ModelExample.Name1" 标签助手时,它会自动帮助生成带有 id="ModelExample_Name1" name="ModelExample_Name1" 的 DOM。 你可以试试我的代码。 <form id="MyForm" method="post" asp-page-handler="Saving" > <div class="form-group"> <label asp-for="ModelExample.Description1"></label> <textarea id="mytextarea" class="form-control" asp-for="ModelExample.Description1" rows="10" placeholder="Enter Name"></textarea> </div> <div class="form-group"> <label asp-for="ModelExample.Description2"></label> <textarea id="mytextarea" class="form-control" asp-for="ModelExample.Description2" rows="10" placeholder="Enter Name"></textarea> </div> <div class="form-group"> <label asp-for="ModelExample.Description3"></label> <textarea id="mytextarea" class="form-control" asp-for="ModelExample.Description3" rows="10" placeholder="Enter Name"></textarea> </div> <button class="btn btn-primary" id="btn1">Save</button> </form> @section Scripts{ <script> $("#btn1").click(function (e) { alert(1); validateForm(e); }); function validateForm(event) { const form = document.getElementById('MyForm'); let textAreas = form.querySelectorAll('textarea'); let allFilled = true; for (let i = 0; i < textAreas.length; i++) { if (textAreas[i].value.trim() === "") { allFilled = false; break; } } if (!allFilled) { alert("All the Requirements are required."); event.preventDefault(); return false; } return true; } </script> }
当在 razor 文件中进行非 C# 更改时,Blazor wasm 应用程序不会在开发中刷新时更新
我必须停止调试器并重新启动才能看到对 razor 文件的最简单的更改(例如简单地更改 标记中的文本值)。 我目前已经设置好服务器预渲染... 我必须停止调试器并重新启动才能看到对 razor 文件的最简单的更改(例如简单地更改 <p> 标记中的文本值)。 我目前已对其进行设置,以便服务器预渲染页面,并且它确实反映更新,但是当 wasm 应用程序在几秒钟后加载时,它会恢复回来。 即使清除缓存,页面硬刷新也无济于事。我只能在停止并重新启动调试器后才能看到 wasm 应用程序中的更改。 必须重新启动应用程序才能看到我所做的每一个小的 html/css 更改,这是非常令人沮丧和耗时的。 试图找出这是否是一个已知问题,或者是否有某些设置或我必须打开或关闭的东西? 编辑: 因此,如果我对 razor.css 文件进行更改,那么它会立即反映保存时的更新。非常奇怪的是,这可行,但剃刀页面上的简单文本更改在不重新启动的情况下不会更新。 .NET 热重载支持 Visual Studio 中内置的所有类型的 .NET 应用程序,使您能够直接针对正在运行的应用程序应用对代码的更改,而无需重新启动。 提示和技巧:ASP.NET Core Blazor 热重载
在 ASP.NET Core 中将模型从 Index 传递到 _Layout 再到 _Header 会导致 get_Model() 出现 NullReferenceException
我有一个使用 Razor 页面的 ASP.NET Core 8.0 项目。当我访问 http://localhost:5###/ 时,ViewData["_Header"] 用于将数据从 Index 页面传递到 _Layout 页面,再传递到 _...