razor-pages 相关问题

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

使用数据从 Razor 页面重定向

我需要通过重定向来传递集合。但“RedirectToPage”仅通过 GET 请求发送。 是否有另一种方式,通过重定向发送数据? 公共类ListModel:PageModel { 列表<

回答 2 投票 0

模型绑定 RazorPage 表单

所以我对使用 Razor Pages 进行实验的 Asp.Net 框架还比较陌生。我面临模型绑定的问题。它似乎没有按预期工作。 这是我的剃须刀页面。关于“

回答 1 投票 0

使用razor页面向vue.js中的方法传递多个参数

我有一个asp.net core7程序,其中使用了vue.js,我的问题是如何向vue.js方法发送一些参数? 我有一个asp.net core7程序,其中使用了vue.js,我的问题是如何向vue.js方法发送一些参数? <i v-on:click="DeleteSale('@item.ID','@item.Image')" class="far fa-trash-alt cursor text-danger"></i> DeleteSale(ID, Image) {...} 是否要在razor页面中使用vue.js并将@item.ID、@item.Image传递给DeleteSale方法?如果是这样的话,这里有一个例子可以作为参考(需要注意的是,你的按钮属性应该放在 <div id="app"> </div> 容器中): @section Scripts { <script src=https://unpkg.com/vue@3/dist/vue.global.js></script> <script> const app = Vue.createApp({ data() { return { }; }, methods: { DeleteSale(ID, Image) { console.log("DeleteSale method called with ID:", ID, "and Image:", Image); } } }); app.mount('#app'); </script> } <div id="app"> <button v-on:click="DeleteSale('@Model.Id','@Model.Image')" class="btn btn-danger"> <i class="far fa-trash-alt"></i> </button> </div> 可接收参数:

回答 1 投票 0

在我的 Blazor 服务器端应用程序中,我想在用户离开 Razor 页面并更改到另一个页面时运行代码。我怎样才能做到这一点?

我有以下用例: 我有一个剃刀页面,用户可以在其中连接到远程计算机并监视其过程值。当他进入相关页面时,将从 r 中循环读取值...

回答 1 投票 0

从 Razor Pages .Net Get 的 Ajax Json 渲染数据表问题

我一直在尝试遵循 DataTables (https://datatables.net/examples/api/row_details.html) 中的这个示例,但似乎无法加载表数据。我的 ajax 调用中断了...

回答 1 投票 0

如何在 ASP.NET Core Razor Pages 项目中使用实体框架作为 _layout.cshtml 文件中的分部视图来使用 Razor Page?

在 ASP.NET Core Razor Pages 项目中,我想从数据库中获取员工姓名并将其显示为侧边栏菜单中的菜单项。侧边栏菜单位于 _layout.cshtml 文件中。 我使用...添加 Razor 页面

回答 2 投票 0

解决 ASP.NET Core DI 中的自定义 IdentityErrorDescriber

我基于这种方法创建了一个自定义的 IdentityErrorDescriber,并像这样注册它: 服务 .AddIdentityCore() .AddErrorDescriber...

回答 1 投票 0

视图无法解析操作

我在项目中配置 CRUD 时遇到了问题。视图看不到来自控制器的方法。我使用了主视图和部分视图。 主视图代码: 我在项目中配置 CRUD 时遇到了问题。视图看不到来自控制器的方法。我使用了主视图和部分视图。 主视图代码: <div class="container col-md-10 m-auto" style="width: auto;"> <div class="d-flex align-items-center justify-content-center"> <div class="btn-group" role="group" aria-label="Basic example"> <button type="button" class="btn btn-secondary btn-with-image" onclick="sendObjectType('Star')"> <div class="div-with-image" style="background-image: url('../Graphics/StaticImages/star.png');"></div> </button> <button type="button" class="btn btn-secondary btn-with-image" onclick="sendObjectType('Planet')"> <div class="div-with-image" style="background-image: url('../Graphics/StaticImages/planet.png');"></div> </button> <button type="button" class="btn btn-secondary btn-with-image" onclick="sendObjectType('Moon')"> <div class="div-with-image" style="background-image: url('../Graphics/StaticImages/moon.png');"></div> </button> </div> </div> </div> <div id="partialContainer"> </div> <script src="https://code.jquery.com/jquery-3.6.4.min.js"></script> <script> function sendObjectType(objectType) { $.ajax({ type: "POST", url: "/Encyclopedia/Create", data: { objectType: objectType }, success: function (partialView) { $("#partialContainer").html(partialView); }, error: function (error) { console.error(error); } }); } </script> 部分视图代码: @model SolarSystemEncyclopedia.Models.Planet <div style="margin-top: 2%; margin-bottom: 2%;"> <div class="container-fluid col-md-10 m-auto"> <div class="row container-fluid d-flex align-items-center justify-content-center"> <div class="col-md-6 blue-div"> <h1>Create planet</h1> <form asp-controller="Encyclopedia" asp-action="CreatePartial" method="post" enctype="multipart/form-data"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> @Html.AntiForgeryToken() <div class="form-group mb-3"> <label asp-for="Name" class="control-label"></label> <input asp-for="Name" class="form-control main-inputs" /> <span asp-validation-for="Name" class="text-danger"></span> </div> <div class="form-group mb-3"> <label asp-for="Description" class="control-label"></label> <input asp-for="Description" class="form-control main-inputs" /> <span asp-validation-for="Description" class="text-danger"></span> </div> <div class="form-group mb-3"> <input type="submit" value="CreateMain" class="btn btn-primary" /> </div> <div> <a asp-action="Index">Back to List</a> </div> </form> </div> </div> </div> </div> 在控制器中我有以下方法: [HttpGet] public async Task<IActionResult> Create() { return View(); } [HttpPost] public IActionResult Create(string objectType) { switch (objectType) { case "Star": return PartialView("_CreateStarPartial"); case "Planet": return PartialView("_CreatePlanetPartial"); case "Moon": return PartialView("_CreateMoonPartial"); default: return BadRequest(); } } [HttpPost] public async Task<IActionResult> CreatePartial<T>(T obj) where T : CosmicObject { if (ModelState.IsValid == true) { if (obj is Planet planet) { var star = _context.Star.FirstOrDefault(s => s.Id == planet.MainStarId); planet.MainStar = star; planet.Density = Double.Parse(planet.StringDensity); } if (obj.MainImage != null) { string uploadsFolder = Path.Combine(_appEnvironment.WebRootPath, "Graphics", "ObjectImages", obj.Name); string uniqueFileName = obj.Name + "MainImage.jpg"; string filePath = Path.Combine(uploadsFolder, uniqueFileName); if (!Directory.Exists(uploadsFolder)) { Directory.CreateDirectory(uploadsFolder); } using (var fileStream = new FileStream(filePath, FileMode.Create)) { await obj.MainImage.CopyToAsync(fileStream); } } _context.Add(obj); await _context.SaveChangesAsync(); return RedirectToAction(nameof(Index)); } return View(obj); } 第一种方法打开主视图,第二种方法打开部分视图,第三种方法应在提交表单后打开。 我更改了方法的名称,尝试向视图中的表单添加不同的标签,但没有任何效果。形式表明应该调用 post 方法,但即使 post 方法和 get 方法同名,由于某种原因仍会调用 get 方法。 网上查了一下,发现可能和ajax有关,但是没找到修复的办法。 我相信您的AJAX电话不完整。另外为什么是 Create GET 方法 async ?您可以参考以下代码更改,希望能解决您的问题: 将您的 AJAX 通话更改为: <script> function sendObjectType(objectType) { var param = { objectType: objectType}; $.ajax({ type: "POST", url: '@Url.Action("Create", "Encyclopedia")', data: { "json": JSON.stringify(param)}, dataType: "html", success: function (partialView) { $("#partialContainer").html(partialView); }, error: function (error) { console.error(error); } }); } </script> 你的 Controller 方法将如下所示: [HttpGet] public IActionResult Create() { return View(); } [HttpPost] public IActionResult Create(string json) { var jsondata = JsonConvert.DeserializeObject<dynamic>(json); string objectType = Convert.ToString(jsondata["objectType"]); switch (objectType) { case "Star": return PartialView("_CreateStarPartial"); case "Planet": return PartialView("_CreatePlanetPartial"); case "Moon": return PartialView("_CreateMoonPartial"); default: return BadRequest(); } }

回答 1 投票 0

Ubuntu 上的 ASP.NET 找不到库

我正在尝试运行一个使用 EF 的项目,但 dotnet 发出了投诉: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[1] 执行时发生未处理的异常...

回答 1 投票 0

Ubuntu 20 上的 .NET Kestrel 无响应

我正在尝试使用以下 appsettings.json 在 Ubuntu 上运行 .NET: { “记录”:{ “日志级别”:{ “默认”:“信息”, “微软。

回答 1 投票 0

在 Razor 页面上单击按钮时显示不同的部分视图

我有一个视图,该视图包含三个按钮。我想在按钮单击时显示不同的部分视图。我还想将模型转移到这些部分视图。我尝试了下面的代码,但它...

回答 1 投票 0

ASP.NET Core 7 项目在生产中首次加载需要很长时间

我有一个 ASP.NET Core 7 Razor 页面项目。它在本地主机上运行良好,但是当我将项目上传到互联网上的 Web 服务器时,第一次加载时,需要几秒钟才能加载

回答 1 投票 0

ASP.NET Core Razor 页面路由导致 http 404 错误

我正在使用 ASP.NET Core Razor 页面,并且此指令位于我的 Blog.cshtml 顶部 @page "/blog/{category?}/page/{pageNo?}" 现在我希望这些路线都与上面的匹配: /博客...

回答 1 投票 0

如果项目不等于全部,复选框列表不允许我检查任何项目?

我正在开发一个 asp.net razor 页面。我面临的问题是,除了所有复选框之外,我无法选择任何已选中的复选框。 如果选中所有复选框,则所有选中的复选框都可以正常工作。 如果所有复选框都没有

回答 1 投票 0

如何将复选框的选定文本传递到剃刀页面上的操作结果?

我在 asp.net core razor 页面工作。我将选定的 id 作为数组成功传递 但我的问题为复选框选择的文本值未通过或显示 问题发生在这一行 selectedClassText.push($(this).

回答 1 投票 0

我想使用@Html.Raw(string),(其中string包含完整的html网页)并在同一页面上并排显示卡片格式的多个网页

下面是网页中多个卡片元素的 css 和 Html,每个卡片元素都包含一个网页,但这对我不起作用。当我尝试将文本放在网络位置时...

回答 1 投票 0

当我重复调用作用域服务(即输出值)时,我的 Blazor 服务器端 razor 页面中的值不会更新。为什么?

我有以下 razor.cs 代码,该代码正在调用作用域服务中的函数。作用域服务中的函数正在从 REST API 读取动态变化的过程值。当我调用该函数时...

回答 1 投票 0

双向绑定在 Blazor 组件中不起作用

我正在 .NET 8 中开发 ASP.NET Blazor 应用程序。模型类SubjectName 与此SubjectForm.razor blazor 组件绑定。 @inject ISubjectNameRepo 仓库 @if(主题不为空) { 我正在 .NET 8 中开发 ASP.NET Blazor 应用程序。模型类 SubjectName 与此 SubjectForm.razor blazor 组件绑定。 @inject ISubjectNameRepo Repo @if(Subject is not null) { <div class="row justify-content-center"> <div class="col-6"> <EditForm Enhance="true" method="post" FormName="SubjectForm" Model="Subject" OnValidSubmit="AddOrEditSubject" OnInvalidSubmit="InvSubmit" autocomplete="off"> <DataAnnotationsValidator/> <h3>@Title</h3> @if (IsEditMode) { <input type="hidden" name="Subject.Id" value="@Subject.Id"/> } <div class="mb-3"> <label for="subname" class="form-label"> Subject Name </label> <InputText id="subname" @bind-Value="Subject.SubName" class="form-control shadow-none" /> </div> <div class="mb-3"> <button type="submit" class="btn btn-primary shadow-none"> Submit </button> <a href="/subjects/list" class="btn btn-secondary shadow-none ms-3"> Back to List </a> </div> <ValidationSummary /> </EditForm> </div> </div> } else { <div> The subject is null ghere </div> } @code { [Parameter] public bool IsEditMode { get; set; } = false; [Parameter] public int Id { get; set; } [SupplyParameterFromForm] public SubjectName? Subject { get; set; } public string Title => IsEditMode ? $"Edit Subject {Id}" : "Add New Subject"; [Parameter] public EventCallback<SubjectName> OnValidSubjectNameSubmit { get; set; } protected override async Task OnInitializedAsync() { if (IsEditMode) { Subject ??= await Repo.GetByIdAsync(Id); } else { Subject ??= new(); } } private async Task AddOrEditSubject() { await OnValidSubjectNameSubmit.InvokeAsync(Subject); } private async Task InvSubmit() { } } 下面是SubjectName模型类的代码 public class SubjectName { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int Id { get; set; } [Required] [StringLength(50)] [Display(Name = "Subject Name")] public string? SubName { get; set; } public virtual ICollection<EvaluationTweak>? EvaluationTweaks { get; set; } } 当我运行这个应用程序时,导航到此页面,输入数据,然后单击“提交”按钮,然后InputText的内容消失并显示一条消息Subject Name field is required 我无法理解那里出了什么问题? 奇怪。我知道解决方案,但它只是一个解决方案。真正的原因对我来说仍然是隐藏的。 问题的外层是提交表单时Subject属性为空。它应该具有表单中的值。表格已正确提交。 我只展示相关部分: 您要绑定到表单的模型: public class SubjectName { public string? SubName { get; set; } public virtual ICollection<EvaluationTweak>? EvaluationTweaks { get; set; } } 这里的问题是EvaluationTweaks,如果删除它们,一切都会按预期进行。现在来说说原因。检查EvaluationTweak类: public class EvaluationTweak { [Required] public virtual SubjectName Subject { get; set; } = new(); } 当您删除 Subject 属性时,它也将起作用...请注意,您可以将其替换为 int SubjectId,以便将引用保留在那里。另请注意,从 Subject 中删除 EvaluationTweak 属性不会更改数据库架构。 但是为什么这是一个问题呢?我不知道,我的猜测是 - 它在序列化方面存在某种问题?也许它被认为是循环引用? 如果能进一步调查就好了。

回答 1 投票 0

如何在 Razor 页面中添加和可编辑组合框

在 Razor 页面中,我需要一个组合框,允许用户选择或键入值。 组合框是从数据库加载的。 我正在使用.NET 8.0。 页面chtml摘录: 在 Razor 页面中,我需要一个组合框,允许用户选择或键入值。 组合框是从数据库加载的。 我正在使用 NET 8.0。 页面chtml摘录: <div class="form-group"> <label asp-for="TransactionLine.Payee" class="control-label"></label> <select asp-for="TransactionLine.Payee" class="form-control" asp-items="ViewBag.PayeeName"></select> <span asp-validation-for="TransactionLine.Payee" class="text-danger"></span> </div> 模型摘录 public async Task<IActionResult> OnGetAsync(int? id) { ... ViewData["PayeeName"] = new SelectList(_payeesService.GetPayees(), "Name", "Name"); TransactionLine = transactionLine; return Page(); } 如何使组合框可编辑? 您可以尝试将 <input> 与 <datalist> 一起使用 @{ List<string> namelist = new List<string>{"Tom","John","Nancy"}; } <div class="form-group"> <label class="control-label"></label> <input class="form-control" list="payeenames"></input> <datalist id="payeenames"> @foreach (var item in namelist) { <option>@item</option> } </datalist> </div> 结果

回答 1 投票 0

无法将类型为“System.Collections.Generic.List”的对象转换为类型为“System.Linq.IQueryable”错误

我已经检查过其他关于此问题的帖子,但没有看到任何与我的代码足够相似的内容来提示我足以修复它。请指教。 我的剃刀页面应用程序有一份报告。这是它的 .cs: {

回答 1 投票 0

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