razor-pages 相关问题

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

找不到视图组件“Shoes.Components.CartViewComponent”的“Invoke”或“InvokeAsync”方法

我正在研究 ASP Net Core MVC 中的视图组件。这是我的视图组件 公共 CartViewComponent(GiaydepContext 上下文) { _context = 上下文; } 公共 IViewComponentResult Ivoke() {...

回答 1 投票 0

主页渲染后未加载部分视图

我有一个剃刀主页,其中包含一个使用 OnGet() 事件加载的选择器,当用户单击此选择器的值时,将调用 jQuery 函数来加载包含某些值的部分视图。

回答 1 投票 0

通过 Ajax 在 ASP.NET Core Web API 中的 POST 上出现 400 错误请求(不是针对控制器,而是针对同一页面事件处理程序)

我在 .NET 8 和 VS2022 中使用 ASP.NET Core Razor 页面。 我试图让我的控制器对公众隐藏,所以我的所有 POST 请求首先调用同一页面。例如 www.mywebsite.com/index 将...

回答 1 投票 0

如何使用 <a> 标签传递多个列表值?

基本示例链接 - 以下链接是我正在尝试构建的。但这仅适用于单一值。 问题详细信息 在 中选择多种颜色后,然后单击 标签,我想要 基本示例链接 - 以下链接是我正在尝试构建的。但这仅适用于单一值。 问题详细信息 在我在colors中选择多个<select>后,然后单击<a>标签,我想传递我在<select>中选择的值。目前,单击 <a> 标签后,它不会保留在 <select> 内选择的值 Step#1 在这里,我创建带有 2 个过滤器的表单。 1 个搜索文本框和 2 个选择列表 <form asp-page="./index" method="get"> <input type="text" asp-for="SearchString" /> <select asp-for="Colors" asp-items="@Model.Colors_SELECT" class="MultiSelect" multiple>...</select> ... </form> 步骤#2 在表格网格中显示数据。 <a> 正在将过滤器传递给 url <table> .... <a asp-page="./My_Training" asp-route-SearchString="@Model.SearchString" asp-route-Colors="@Model.Colors" asp-route-SortOrder="@Model.Colors_Sort"> @Html.DisplayNameFor(model => model.MyListData[0].Colors) </a> .. // more `<a>` tags. 1 for each column </table> Step#3 后端代码: - 主要是绑定过滤器值 [BindProperty(SupportsGet = true)] public string? SearchString { get; set; } [BindProperty(SupportsGet = true)] public List<string>? Colors { get; set; } public SelectList? Colors_SELECT { get; set; } public async Task OnGetAsync() { // everything is auto bind to properties } 我尝试过的:根据谷歌的说法,他们建议将asp-all-route-data与Dictionary一起使用。我已经尝试过这段代码,但它不适用于多值。 Dictionary 不允许使用相同的密钥。例如:如果我使用 asp-all-route-data 并传递像 Colors[0]=Red&Colors[1]=Green 这样的 URL,那么它不会保留在 <select> 中选择的值 我也尝试过这样做。这是可行的,但如果数据网格中有太多过滤器和列,代码会很混乱并且难以维护 <input type="hidden" asp-for="URL_String" /> ... <a href="/Index? @Model.URL_String&[email protected]_Sort"> @Html.DisplayNameFor(model => model.CourseTakenList[0].Colors) </a> public string? URL_String { get; set; } = ""; public async Task<IActionResult> OnPostAsync() { string? createURL = "?"; createURL += $"SearchString={SearchString}&"; foreach (var p in Colors) { createURL += $"Colors={p}&"; } if (createURL.EndsWith("?") || createURL.EndsWith("&")) { createURL = createURL.TrimEnd(createURL[createURL.Length - 1]); //remove last '&' } string url = $"{HttpContext.Request.Path}{createURL}"; return Redirect(url); } public async Task OnGetAsync() { URL_String = Request.QueryString.ToString().Replace("??", "?"); CurrentSort = Request.Query["SortOrder"]; } 因为asp-all-route-data不能用同一个key传值,所以需要自己添加索引,请参考这个简单的demo: @{ var colors = new Dictionary<string, string>(); var i = 0; foreach (var item in Model.colors) { colors.Add($"colors[{i}]", item); i++; } } <a asp-page="index" asp-all-route-data="colors">Test</a> 它将传递如下数据: ?colors[0]=red&colors[1]=green&colors[2]=black 演示: ==========================更新================== <select multiple id="selectone"> <option value="red">red</option> <option value="black">black</option> <option value="white">white</option> <option value="yellow">yellow</option> </select> <button onclick="MySelect()">Select color</button> <a asp-page="index" asp-route-SearchString="Test" id="color">Test</a> <script> function MySelect(){ var result = document.getElementById("selectone").selectedOptions; var arr=[]; for(let i=0,len = result.length;i<len;i++){ if(result[i].selected){ arr.push("colors["+i+"]=" + result[i].value) } } var str=arr.join("&"); var a = document.getElementById("color").getAttribute('href'); var url = a+ "&" + str; document.getElementById("color").href = url; } </script> 演示:

回答 0 投票 0

字典的替代品

出现错误:在线 CurrentFilters.Add($"Colors", Colors[i].ToString()); 处理请求时发生未处理的异常。 ArgumentException:具有相同键的项目...

回答 1 投票 0

重定向到 ASP.NET Core razor 页面中的页面时出错

我想重定向到此页面 我想重定向到的根目录, 但我收到了这个错误: InvalidOperationException:没有名为“Miner/MinerDetail”的页面与提供的值匹配。 我想重做...

回答 1 投票 0

在字符串变量中提供角色 ID 时,RoleManager 的 FindRoleById() 返回 null(Identity 3.0)

我在使用 dotnet core 的 RoleManager 时面临一个非常特殊的问题。 我使用以下代码在 Role 变量中获取空值。 公共 IdentityRole 角色 { 获取;放; } 圣...

回答 1 投票 0

ASP.NET Core Razor Pages Ajax 帖子使用 FromBody 为空

我正在开发 ASP.NET (6.0) Razor Pages 应用程序。其中一个页面需要使用 AJAX 发布数据,但是该发布始终为空。 我尝试使用之前的相关问题来解决这个问题...

回答 1 投票 0

用于登录 appsettings.json (.net6) 的 IOptionsMonitor 返回旧值/默认值

我正在尝试使用 IOptionsMonitor 在运行时在 appsettings.json 中更改 ILogger 日志级别,但尽管如此,我已将 IOptionsMonitor 用于其他设置,例如应用程序中使用的电子邮件设置...

回答 2 投票 0

如何将 IPageFilter 仅应用于 Razor 页面中的 OnPost 处理程序

我想将 IPageFilter 应用于 Razor 页面中的 OnPost 处理程序。 像这样: [我的过滤器] public IActionResult OnPost() { // 任意代码 } 但是当我这样做时,Visual studio 强迫我应用我的 f...

回答 2 投票 0

统计链接被点击的次数(ASP.NET Core razor page asp-page-handler)

谁能帮助我?我有一个指向另一个页面的链接。和 我想统计这个链接被点击的次数并存储它 在我的 SQL Server 数据库中。我的页面是 ASP.NET Core razor 页面...

回答 1 投票 0

Azure SQL Server 数据库连接问题。错误:26 - 定位特定于服务器/实例的错误

我在这里做了一个关于 ASP.NET Razor Pages 的项目,它具有基本的数据库功能(增删改查)。我能够将我的项目上传到 azure 来托管它,但是当我导航到“员工列表...

回答 1 投票 0

提交表单时运行自定义验证脚本

我有一个 ASP.NET Core Razor Pages 应用程序,其中的页面需要一些自定义验证。我希望使用自定义 JavaScript 在客户端上运行此验证。 我怎样才能确保我的验证...

回答 1 投票 0

ASP.NET Core Razor 页面 _Layout.cshtml.css 未应用

我偶然发现了 CSS 文件 _Layout.cshtml.css 的问题。好吧,简短而快速的描述,CSS 类“页脚”未被应用。其他 CSS 类,如“border-top”和“text-center”...

回答 2 投票 0

ASP.NET Core MVC:$(文档).ready 不起作用

我有一个像这样的 Razor 视图,这是网站的布局 我有一个像这样的 Razor 视图,这是网站的布局 <link href="~/Contents/Material/css/memenu.css" rel="stylesheet" type="text/css" media="all"> <script type="text/javascript" src="~/Contents/Material/js/memenu.js"></script> <script> $(document).ready(function () { $(".memenu").memenu(); }); </script> <script src="~/Contents/Material/js/simpleCart.min.js"></script> <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script> 这是memenu.js所在的位置:“~/Contents/Material/js/memenu.js”。 看起来 URL 是正确的。然而,$(document).ready()似乎不起作用。 这是memenu的定义: $(document).ready(function () { $.fn.memenu = function (e) { function r() { $(".memenu").find("li, a").unbind(); if (window.innerWidth <= 768) { o(); s(); if (n == 0) { $(".memenu > li:not(.showhide)").hide(0) } } else { u(); i() } } function i() { $(".memenu li").bind("mouseover", function () { $(this).children(".dropdown, .mepanel").stop().fadeIn(t.interval) }).bind("mouseleave", function () { $(this).children(".dropdown, .mepanel").stop().fadeOut(t.interval) }) } function s() { $(".memenu > li > a").bind("click", function (e) { if ($(this).siblings(".dropdown, .mepanel").css("display") == "none") { $(this).siblings(".dropdown, .mepanel").slideDown(t.interval); $(this).siblings(".dropdown").find("ul").slideDown(t.interval); n = 1 } else { $(this).siblings(".dropdown, .mepanel").slideUp(t.interval) } }) } function o() { $(".memenu > li.showhide").show(0); $(".memenu > li.showhide").bind("click", function () { if ($(".memenu > li").is(":hidden")) { $(".memenu > li").slideDown(300) } else { $(".memenu > li:not(.showhide)").slideUp(300); $(".memenu > li.showhide").show(0) } }) } function u() { $(".memenu > li").show(0); $(".memenu > li.showhide").hide(0) } var t = { interval: 250 }; var n = 0; $(".memenu").prepend("<li class='showhide'><span class='title'>MENU</span><span class='icon1'></span><span class='icon2'></span></li>"); r(); $(window).resize(function () { r() }) } }); 这是我的脚本的路径: 当我运行应用程序时,网站不显示菜单。有谁知道为什么会发生这种情况? 在布局底部声明您的脚本。您提到它们是在顶部声明的...如果在执行脚本时文档仍在加载,这将导致问题。 将以下内容移至布局底部(就在 </body> 标签之前): <script type="text/javascript" src="~/Contents/Material/js/memenu.js"></script> <script> $(document).ready(function () { $(".memenu").memenu(); }); </script> <script src="~/Contents/Material/js/simpleCart.min.js"></script> <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script> 还要确保它们的顺序正确。

回答 1 投票 0

ASP Net Core MVC $(文档).ready 不工作

我有这样的 Razor 视图,这是网站的布局 我有这样的 Razor 视图,这是网站的布局 <link href="~/Contents/Material/css/memenu.css" rel="stylesheet" type="text/css" media="all"> <script type="text/javascript" src="~/Contents/Material/js/memenu.js"></script> <script> $(document).ready(function () { $(".memenu").memenu(); }); </script> <script src="~/Contents/Material/js/simpleCart.min.js"></script> <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script> 这是 memenu.js (~/Contents/Material/js/memenu.js) 的位置。我确实确定网址是正确的。但是 $(document).ready(function () 似乎不起作用。这是 memenu 的定义 $(document).ready(function () { $.fn.memenu = function (e) { function r() { $(".memenu").find("li, a").unbind(); if (window.innerWidth <= 768) { o(); s(); if (n == 0) { $(".memenu > li:not(.showhide)").hide(0) } } else { u(); i() } } function i() { $(".memenu li").bind("mouseover", function () { $(this).children(".dropdown, .mepanel").stop().fadeIn(t.interval) }).bind("mouseleave", function () { $(this).children(".dropdown, .mepanel").stop().fadeOut(t.interval) }) } function s() { $(".memenu > li > a").bind("click", function (e) { if ($(this).siblings(".dropdown, .mepanel").css("display") == "none") { $(this).siblings(".dropdown, .mepanel").slideDown(t.interval); $(this).siblings(".dropdown").find("ul").slideDown(t.interval); n = 1 } else { $(this).siblings(".dropdown, .mepanel").slideUp(t.interval) } }) } function o() { $(".memenu > li.showhide").show(0); $(".memenu > li.showhide").bind("click", function () { if ($(".memenu > li").is(":hidden")) { $(".memenu > li").slideDown(300) } else { $(".memenu > li:not(.showhide)").slideUp(300); $(".memenu > li.showhide").show(0) } }) } function u() { $(".memenu > li").show(0); $(".memenu > li.showhide").hide(0) } var t = { interval: 250 }; var n = 0; $(".memenu").prepend("<li class='showhide'><span class='title'>MENU</span><span class='icon1'></span><span class='icon2'></span></li>"); r(); $(window).resize(function () { r() }) } }); 当我运行应用程序时,网站没有显示菜单。有谁知道为什么菜单不显示?. 在布局底部声明您的脚本。您提到它们是在顶部声明的...如果在执行脚本时文档仍在加载,这将导致问题。 将以下内容移至布局底部(就在标签之前): <script type="text/javascript" src="~/Contents/Material/js/memenu.js"></script> <script> $(document).ready(function () { $(".memenu").memenu(); }); </script> <script src="~/Contents/Material/js/simpleCart.min.js"></script> <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script> 还要确保它们的顺序正确。

回答 1 投票 0

在 Razor Pages Identity“管理帐户”页面上设置背景图像

我正在尝试在 ASP.NET Core Web 应用程序的登录和管理帐户页面上设置背景图像 - 我正在使用 Razor Pages 身份,但无论我将 C 放在哪里,它似乎都不会改变...

回答 1 投票 0

AD 组授权 .NET Core 8.IISExpress 未注册身份验证处理程序

已编辑 这适用于 IIS,但不适用于 IISExpress: var builder = WebApplication.CreateBuilder(args); // 将服务添加到容器中。 builder.Services.AddRazorPages(); builder.Services.AddSingleton<

回答 1 投票 0

从 Core 3.1 到 8 的 AD 组授权。未注册任何身份验证处理程序

之前我是通过在startup.cs中输入以下内容来实现AD组授权的: services.AddSingleton(); services.AddAuthorization(

回答 1 投票 0

如何在razor页面导航到另一个文件夹的页面?

我使用 ASP.NET CORE Razor Pages。我的项目的结构是名为 Pages 的头文件夹。其中有很多 razor 页面。在 /Pages 中,我有一个名为 Reader 的文件夹,其中有一个名为 AddRead 的 razor 页面...

回答 1 投票 0

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