razor 相关问题

Razor是ASP.NET网页和ASP.NET MVC使用的模板语言(自版本3开始)。它在HTML生成之上添加了一层抽象。它支持HTML标记和C#或VB代码之间的无缝转换。标记和代码之间的转换由“@”符号表示。

为什么在 Razor 视图中使用 @model IQueryable<>

在 Razor 视图中使用 @model IQueryable<> 是个好主意吗?在 Razor 视图中使用 @model IQueryable<> 的任何合适场景? 我刚刚用 Lis 替换了 IQueryable<>...

回答 1 投票 0

如何将模型的选定属性绑定到 Razor 页面?

我刚刚转向 Razor Pages,但遇到了困难。这是一个页面模型: 公共类ThisPersonPageModel:PageModel { [绑定属性] 公共 MyApp.Models.Person ThisPerson { 获取;放; } ...

回答 2 投票 0

为什么 Razor Pages 模型绑定中需要 [BindProperty]?

我的 .cs 文件中有以下代码: [绑定属性] 公共 ApimSubscriptionRoot apimSubscriptions { 获取;放; } ...这允许我在 Razor 视图中访问对象的属性,如下所示: @莫...

回答 1 投票 0

如何使用 Razor 语法使变量可供 ASP.NET 网站中的所有页面访问

我接到了构建 ASP.NET Razor 网站的任务。这对我来说是新事物。我非常精通 PHP 和 ASP Classic。我需要弄清楚的是如何声明 va...

回答 2 投票 0

ASP.Net Razor C# 变量可访问所有页面

首先,请原谅我并纠正我的术语。我非常确定用正确的词语来表达我想要实现的目标。 我接到了构建 AS 的任务...

回答 2 投票 0

将数据从视图传递到控制器 asp.net core razor 页面

我正在尝试创建一个简单的 asp.net core razor 网站。 我有一个 .cshtml 页面: @页 @使用 RazorPages @model索引模型 @using (Html.BeginForm()) { 怎么啦...

回答 1 投票 0

如何从 .cshtml 页面引用函数?

我有一个 Functions.cshtml 文件,其中包含所有用户定义的函数: @函数{ 公共静态字符串 doSomething(字符串 aString, 字符串 anotherString) { ... } } 在另一个页面中,myPage.cshtm...

回答 1 投票 0

如何从 .cshtml 页面引用用户定义的函数?

我有一个 Functions.cshtml 文件,其中包含所有用户定义的函数: @函数{ 公共静态字符串 doSomething(字符串 aString, 字符串 anotherString) { ... } } 在另一个页面中,myPage.cshtm...

回答 1 投票 0

如何将代码隐藏中的字符串动态插入到 Razor Pages 元素的 asp-for 属性中

我可以以某种方式从类中获取字符串值并将这些字符串值插入到 Razor Page HTML 元素的 asp-for 属性的值中吗? 我有一个像下面这样的类,只包含 n...

回答 1 投票 0

Razor 页面:带参数的重定向到页面

我有一个剃刀页面,显示公司和员工列表: @page“/admin/companies/editor/{id}” @model编辑器模型 @{ } 管理员。公司。编辑 Id = @ 我有一个剃刀页面,显示公司和员工列表: @page "/admin/companies/editor/{id}" @model EditorModel @{ } <h1>admin . companies . editor</h1> <h4>Id = @Model.Id</h4> <h4>Name = @Model.OrgStructure.Organisation.Name</h4> <h4>Staff Count = @Model.OrgStructure.Staff.Count</h4> <table> <tr> <th>Id</th> <th>Name</th> </tr> @if (Model.OrgStructure.Staff.Any()) { foreach (Staff s in Model.OrgStructure.Staff) { <tr> <td>@s.Id</td> <td>@s.Username</td> </tr> } } else { <tr> <td colspan="2">No Staff</td> </tr> } </table> <a class="btn btn-primary" asp-page="/admin/companies/staff/create" asp-route-orgId="@Model.OrgStructure.Organisation.Id">Create Staff</a> @functions { public class EditorModel : PageModel { public string Id { get; set; } public OrganisationStructure OrgStructure { get; set; } public void OnGet(string id) { Id = id; using (DirectoryApp app = ServicesFactory.MakeDirectoryService()) { OrgStructure = app.GetOrganisationStructureAsync(new Guid(id)).Result; } } } } 当我点击时: <a class="btn btn-primary" asp-page="/admin/companies/staff/create" asp-route-orgId="@Model.OrgStructure.Organisation.Id">Create Staff</a> 它带我进入我的员工创建页面: @page "/admin/companies/staff/create/{orgId}" @model CreateModel @{ } <h1>admin . companies . staff . create</h1> <h3>OrganisationId = @Model.OrganisationId</h3> <form method="post"> <input name="OrgId" value="@Model.OrganisationId" /> <div asp-validation-summary="All" class="text-danger"></div> <div class="form-group"> <label>User Name</label> <input name="UserName" class="form-control" value="@Model.UserName" /> </div> <button type="submit" class="btn btn-primary">Submit</button> <a class="btn btn-secondary" asp-page="/admin/companies/editor" asp-route-id="@Model.OrganisationId">Back</a> </form> @functions { public class CreateModel : PageModel { [BindProperty] [Required] public string UserName { get; set; } public Guid OrganisationId { get; set; } public void OnGet(string orgId) { OrganisationId = new Guid(orgId); } public async Task<IActionResult> OnPostAsync(string userName, string orgId) { if (ModelState.IsValid) { using (DirectoryApp app = ServicesFactory.MakeDirectoryService()) { await app.AddStaffToOrganisationAsync( new Guid(orgId), new Staff() { Username = userName }); return RedirectToPage("/admin/companies/editor/" + orgId.ToString()); } } return Page(); } } } 我有两个问题: 如果我单击“提交”并出现模型错误,则会收到错误消息,但使用 @Model.OrganizationId 的字段将被清空。 我猜想当在 OnGet() 方法中设置 OrganizationId 时,它会在发布后丢失。 这是否意味着我需要在 OnPostAsync() 方法中重新填充我的 CreateModel.OrganizationId? 如果我成功的话: return RedirectToPage("/admin/companies/editor/" + orgId.ToString()); 应该带我回到原来的屏幕,查看新添加的员工的公司。 但是,我收到错误: 处理请求时发生未处理的异常。 InvalidOperationException:没有名为“/admin/companies/editor/473be1aa-7d62-4964-b744-b34e0489d7ad”的页面与提供的值匹配。 但是,如果我将“/admin/companies/editor/473b...”复制并粘贴到浏览器地址栏中的“localhost:12345”之后,则页面打开没有问题。 我做错了什么? 如果我单击“提交”并出现模型错误,则会收到错误消息 但使用 @Model.OrganizationId 的字段被清空。 我猜当在OnGet()方法中设置OrganizationId时,这是 发帖后丢失。这是否意味着我需要重新填充我的 OnPostAsync() 方法中的 CreateModel.OrganizationId? 这个问题的答案是: 我不应该在 OnPostAsync 方法中声明参数,而应该使用 CreateModel 本身中的属性(带有绑定)。 在 CreateModel 中的 OrganizationId 属性上使用 [BindProperty]。 在输入控件上,将 OrgId 字段的名称更改为 OrganizationId。 所以: <input name="OrgId" value="@Model.OrganisationId" /> 更改为: <input name="OrganisationId" value="@Model.OrganisationId" /> 和 public async Task<IActionResult> OnPostAsync(string userName, string orgId) { if (ModelState.IsValid) { using (DirectoryApp app = ServicesFactory.MakeDirectoryService()) { await app.AddStaffToOrganisationAsync( new Guid(orgId), new Staff() { Username = userName }); return RedirectToPage("/admin/companies/editor/" + orgId.ToString()); } } return Page(); } 更改为: public async Task<IActionResult> OnPostAsync() { if (ModelState.IsValid) { using (DirectoryApp app = ServicesFactory.MakeDirectoryService()) { await app.AddStaffToOrganisationAsync( OrganisationId, new Staff() { Username = this.UserName }); return RedirectToPage("/admin/companies/editor", new { id = OrganisationId.ToString() }); } } return Page(); } 和 [BindProperty] [Required] public string UserName { get; set; } public Guid OrganisationId { get; set; } 更改为 [BindProperty] [Required] public string UserName { get; set; } [BindProperty] public Guid OrganisationId { get; set; } 使用上述: 在模型验证失败的帖子中,属性在之后仍保留在 UI 上 返回页面(); 现在,我已将参数作为匿名对象移动到第二个参数,而不是连接字符串作为查询参数,重定向到页面就可以工作了。 RedirectToPage("/admin/companies/editor", new { id = OrganisationId.ToString() })正确 如果您需要传递列表作为RedirectToPage的参数,您可以这样做: return RedirectToPage("./Index", new { MigrationStatus = new List<int>() { (int)MigrationStatus.AwaitingStart, (int)MigrationStatus.InProgress } }); 它将创建一个像这样的 URL: https://localhost:123/Migrations?MigrationStatus=3&MigrationStatus=4

回答 2 投票 0

将基本标记从 Blazor 服务器中的 _Host.cshtml 迁移到 Blazor Web 中的 App.razor

我最近将应用程序从 .NET 7 升级到 .NET 8,并面临与基本标签相关的问题,该标签之前在 _Host.cshtml 中使用标签帮助器语法使用: 我最近将应用程序从 .NET 7 升级到 .NET 8,并面临与基本标签相关的问题,该标签之前在 _Host.cshtml 中使用标签帮助器语法:<base href="~/" />。此设置运行良好,适用于开发和生产环境: 开发:该应用程序运行于 https://localhost:port。 生产:发布到 IIS 站点后,该应用程序可在 https://server/app 下使用。 在.NET 8 Blazor Web中,项目结构发生了变化,所以我也想使用App.razor。但是,我在按照迁移文档设置 <base href="/app/" /> 时遇到问题。与之前版本中的标签助手不同,此方法使用静态值。此外,我还面临着区分大小写的问题,导航到 https://server/App(注意大写“A”)会导致 404 错误。 如何在新的 .NET 8 _Host.cshtml 模型中复制 .NET 7 App.razor 的动态基本 URL 行为,以确保我的应用程序在开发和生产环境中无缝运行? 我已阅读: https://learn.microsoft.com/en-us/aspnet/core/blazor/host-and-deploy/?view=aspnetcore-8.0&tabs=visual-studio 仅在 Blazor Web 应用程序中覆盖生产的基本路径(.NET 8 中的 _Hosts.cshtml 文件功能?) https://learn.microsoft.com/en-us/aspnet/core/migration/70-80?view=aspnetcore-8.0&tabs=visual-studio#convert-a-blazor-server-app-into-a -blazor-web-app 我尝试使用app.UsePathBase("/app");但没有成功。 来自这篇文章:https://stackoverflow.com/a/78353968/8031370 在 App.razor 中: <base href="@BaseUrl" /> 在 App.razor 底部添加: @code { [CascadingParameter] private HttpContext HttpContext { get; set; } = null!; private string BaseUrl => $"{HttpContext.Request.PathBase}/"; }

回答 1 投票 0

使用 RazorTemplatePreprocessor 附加原始字符串

在我的控制台应用程序中,我有一个 .cshtml Razor 文件。在文件属性中,我已将 RazorTemplatePreprocessor 设置为自定义工具,这意味着它是所谓的“预处理的 Razor 模板&q...

回答 1 投票 0

尝试渲染 Razor 组件时出现 NullReferenceException

我在尝试渲染 Razor 组件时遇到问题,出现 NullReferenceException。 我有一个组件 NewsCard,它代表一张简单的卡片,其中包含有关新闻条目的摘要: @使用...

回答 1 投票 0

想要在ASP.NET MVC4中的cshtml中插入cshtml,类似于webforms中的usercontrol

将可重用代码插入 cshtml razor 文件的最佳方法是什么。 我需要将数据从外循环传递到用户控件中。 我拍了一张我正在尝试做的事情的照片,希望...

回答 2 投票 0

是否可以从 DNNSharp 的操作表单或操作网格获取内容或令牌并将其显示在 2sxc 模板内?

我正在 DNN 中创建一个页面,允许用户看到他们可以投票的 3 名候选人。我在 2sxc 中设置了这个。 然后,我有一个 DNNSharp 行动表,其中隐藏的收音机中有 3 个候选人

回答 2 投票 0

如何在 ASP.NET MVC 中使用 Html.Raw 编写样式

我正在尝试在 ASP.NET MVC 视图中使用 Html.Raw 编写样式,但它不起作用。如果我检查页面源代码,那么 中的 HTML 源代码中不存在该特定样式。 我有尝试...

回答 1 投票 0

Blazor 与 Razor

随着 Blazor 的发明,我想知道这两种语言之间是否存在显着的效率(无论是在代码创建方面还是在代码的实际编译/执行方面)? https://...

回答 3 投票 0

为什么 View.Title == ViewData["Title"] 会导致错误:“名称‘View’在当前上下文中不存在”?

我对用于 ASP.NET MVC 的 Razor ViewEngine 感到困惑。 你们大多数人会说: 视图.标题 与 查看数据[“标题”] 运行应用程序后我得到这个 编译器错误消息:

回答 1 投票 0

如何将“显示名称”放入 Blazor 页面的标签中?

我有以下型号: 用户类 { [显示(名称=“显示名称”)] 公共字符串名称{获取;放; } } 在标准 Razor 中,我会执行类似以下操作来获得...

回答 7 投票 0

如何将ViewModel传回同一页面

我正在尝试让 HTTPPost 用于视频页面的评论部分,但在回发时遇到一些困难。保存正在记录到数据库中,但在重新加载页面时我没有......

回答 2 投票 0

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