Razor是ASP.NET网页和ASP.NET MVC使用的模板语言(自版本3开始)。它在HTML生成之上添加了一层抽象。它支持HTML标记和C#或VB代码之间的无缝转换。标记和代码之间的转换由“@”符号表示。
我有一个 Razor 页面,其中包含指向某个项目的删除页面的以下链接: 删除 我有一个 Razor 页面,其中包含指向某个项目的删除页面的以下链接: <td><a asp-page="/ProcessLineItem/Delete" asp-route-id="@item.Id">Delete</a></td> 当页面加载时,结果很简单: <td><a>Delete</a></td> 我有一个 Delete.cshtml 页面位于 Pages\ProcessLineItem。此外,如果我将 Delete.cshtml 重命名为 Deleter.cshtml 并将 asp 页面标记帮助器相应更改为 asp-page="/ProcessLineItem/Deleter",一切都会按预期工作,并且 <a> 标记会正确生成。我只能认为我在某处存在某种冲突,并且它不知道如何生成路线,但其他对象的所有其他删除页面都工作正常。 我想你可以尝试这样使用: <td><a href="/ProcessLineItem/[email protected]">Delete</a></td> 该错误可能是由您的 Pages 文件夹结构引起的。 检查项目 csproj 文件中的目标页面。 我解决了这个问题,从 csproj 文件中删除以下代码 --> --> --> -->
由于我们可以以角度选择对象,有什么方法可以让asp.net Dropdown来选择对象。 我有一个列表,其中有 Id、CountryName、CurrencyCode。我想要选择货币代码...
如何在EditorTemplate、ASP.NET Core 8.0中获取模型的容器
我正在寻找在 EditorTemplate (ASP.NET Core 8.0) 中检索容器的可能性。 在 .NET 4.6 中,有这样的属性: ViewData.ModelMetadata.Container 但 .N 中没有这样的属性...
如何在EditorTemplate、net8 ASP.NET Core中获取模型的Container
我正在寻找在EditorTemplate(.net8 asp.net core)中检索容器的可能性 在 .net Framework 4.6 中,有 ViewData.ModelMetadata.Container 的属性,但没有这样的属性...
Visual Studio 2022 中新 ASP.NET Core Razor 项目的 HTML 代码中出现奇怪的字符串
我在使用 Visual Studio 2022(社区版 17.10.4)和 .NET 8.0 创建新的 ASP.NET Core Web 应用程序 (Razor) 项目时遇到问题。不做任何修改,我看到奇怪的
ASP.NET Core Razor 中一个文件夹页面与文件夹其余部分的授权不同
使用 ASP.NET Core 身份,我希望允许授权用户更改其密码,但需要策略“管理员”访问权限才能访问其他帐户管理页面。 然而...
我有asp net core mvc应用程序。单击过滤器控制器后会收到正确的数据,但下拉菜单始终显示“全部”选项: @{ ViewData["标题"] = "索引"; IsOpenFilterSt...
是否可以在 ASP.NET MVC 3 中显示数据库中的原始 Html?
我的数据库中有一个表,其中一个属性是一个 Html 页面(没有 html、head 和 body 标签),我打算将它放在我的一个视图的中间 - 比如说,我调用一个控制器方法...
Kendo UI 网格聚合使用组和 Razor 语法获取“总和”未定义错误
我有一个 Telerik 的父网格,其下有聚合网格作为子网格,这是我的代码 这是父网格 - @(Html.Kendo().Grid()...
我有一个反应组件,我想在剃刀页面中渲染它。但我不想在 div 中呈现。因为我知道它可以与 ReactDOM.render 一起使用。但这不是我想要的。 我必须用它作为...
我在将值输入到 ViewModel 时遇到问题,因为在通过 cshtml 输入值后它不断返回 null。 我在cshtml中输入的值 点击确认后 创建ViewModel.cs 公共...
如何在 .Net Core 项目的布局中包含 font-awesome(通过 nuget 安装)?
我有一个简单的 .NET Core 项目,其中包含以下 .csproj 文件: netcoreapp2.2 我有一个简单的 .NET Core 项目,其中包含以下 .csproj 文件: <Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp2.2</TargetFramework> <DebugType>full</DebugType> </PropertyGroup> <ItemGroup> <PackageReference Include="bootstrap" Version="4.3.1" /> <PackageReference Include="Font.Awesome" Version="5.9.0" /> <PackageReference Include="Microsoft.AspNetCore" Version="2.2.0" /> <PackageReference Include="Microsoft.AspNetCore.CookiePolicy" Version="2.2.0" /> <PackageReference Include="Microsoft.AspNetCore.HttpsPolicy" Version="2.2.0" /> <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.TagHelpers" Version="2.2.0" /> <PackageReference Include="Microsoft.AspNetCore.Session" Version="2.2.0" /> <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.2.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.4" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.2.4" /> <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="2.2.4" /> </ItemGroup> 如您所见,它包含 Bootstrap。它与 Bootstrap 配合得很好。恢复项目后我可以在我的wwwroot文件夹中看到它: 但是 Font-Awesome 怎么样?恢复项目后我看不到库的来源。所以,我有一个问题:如何将 Font-Awesome 包含到我的 _Layout.cshtml 文件中? 我在这里找到了 Font-Awesome: 但我不明白如何将它用于这个地方。 如果安装了软件包,您可以在中找到软件包文件 C:/Users/Your Current User/.nuget/packages/font.awesome。 “content”目录下有所有文件,可以手动导入到项目wwwroot文件夹中,像其他静态文件一样使用。
我有一个较旧的 ASP.NET Core 2.1 Web 应用程序项目。 我的项目中的此文件夹中有一个 .cshtml 页面: G:\Projects\AccessApp\Pages\Privacy.cshtml 我想在我的控制器中使用它。我已经尝试过
我对如何混合razor和js感到非常困惑。这是我目前坚持的功能: 变量数据 = []; @foreach(Model.rows 中的 var r...</desc> <question vote="204"> <p>我对如何混合 razor 和 js 感到非常困惑。这是我目前坚持的功能:</p> <pre><code><script type="text/javascript"> var data = []; @foreach (var r in Model.rows) { data.push([ @r.UnixTime * 1000, @r.Value ]); } </code></pre> <p>如果我可以用 <pre><code><c#></c#></code></pre> 声明 c# 代码,而其他所有内容都是 JS 代码——这就是我所追求的:</p> <pre><code><script type="text/javascript"> var data = []; <c#>@foreach (var r in Model.rows) {</c#> data.push([ <c#>@r.UnixTime</c#> * 1000, <c#>@r.Value</c#> ]); <c#>}</c#> </code></pre> <p>实现这一目标的最佳方法是什么?</p> </question> <answer tick="true" vote="377"> <p>使用<pre><code><text></code></pre>:</p> <pre><code><script type="text/javascript"> var data = []; @foreach (var r in Model.rows) { <text> data.push([ @r.UnixTime * 1000, @r.Value ]); </text> } </script> </code></pre> </answer> <answer tick="false" vote="96"> <p>在代码块(例如,<pre><code>@foreach</code></pre>)内,您需要使用<a href="http://weblogs.asp.net/scottgu/archive/2010/12/15/asp-net-mvc-3-razor-s-and-lt-text-gt-syntax.aspx" rel="noreferrer"><code>@:</code><pre>或</pre><code><text></code><pre>标签</pre>来标记标记(或者在本例中为Javascript)</a>。</p> <p>在标记上下文中,您需要用代码块包围代码(<pre><code>@{ ... }</code></pre>或<pre><code>@if</code></pre>,...)</p> </answer> <answer tick="false" vote="62"> <p>您也可以简单地使用</p> <pre><code><script type="text/javascript"> var data = []; @foreach (var r in Model.rows) { @:data.push([ @r.UnixTime * 1000, @r.Value ]); } </script> </code></pre> <p>注意<strong>@:</strong></p> </answer> <answer tick="false" vote="12"> <p>永远不要混合更多的语言。 </p> <pre><code><script type="text/javascript"> var data = @Json.Encode(Model); // !!!! export data !!!! for(var prop in data){ console.log( prop + " "+ data[prop]); } </code></pre> <p>遇到问题也可以尝试</p> <pre><code>@Html.Raw(Json.Encode(Model)); </code></pre> </answer> <answer tick="false" vote="1"> <p>将 javascript 从视图中分离出来但仍使用 razor 的非常规方法是创建一个 <pre><code>Scripts.cshtml</code></pre> 文件并将混合的 javascript/razor 放在那里。</p> <p>索引.cshtml</p> <pre><code><div id="Result"> </div> <button id="btnLoad">Click me</button> @section scripts { @Html.Partial("Scripts") } </code></pre> <p>脚本.cshtml</p> <pre><code><script type="text/javascript"> var url = "@Url.Action("Index", "Home")"; $(document).ready(function() { $("#btnLoad").click(function() { $.ajax({ type: "POST", url: url , data: {someParameter: "some value"}, contentType: "application/json; charset=utf-8", dataType: "json", success: function(msg) { $("#Result").text(msg.d); } }); }); }); </script> </code></pre> </answer> <answer tick="false" vote="1"> <p>这是我破解 Razor 并使用 Javascript 的方法,而不会吓坏智能感知。</p> <p>显然你应该使用 <pre><code><text></code></pre> 但有一个“权宜之计”:之前使用双括号。</p> <p>如果使用单个支架,会发生以下情况:</p> <p><a href="https://i.sstatic.net/ln6eW.png" rel="nofollow noreferrer"><img src="https://cdn.txt58.com/i/AWkuc3N0YXRpYy5uZXQvbG42ZVcucG5n" alt="enter image description here"/></a></p> <p>这就是使用几个牙套时会发生的情况:</p> <p><a href="https://i.sstatic.net/dq7zO.png" rel="nofollow noreferrer"><img src="https://cdn.txt58.com/i/AWkuc3N0YXRpYy5uZXQvZHE3ek8ucG5n" alt="enter image description here"/></a></p> <p>现在常量和变量已经被识别了。 比较好,但不好! 仍然有“小于”符号混淆智能感知,使其认为以下是标签的名称。 “小于”符号被表示为错误,并且从这里存在解析错误,如“console.log”所示。 您需要添加一些东西来安静智能感知,并且在编译时不会在最终的 JS 代码中返回。</p> <p>解决方案:在“小于”之后使用此注释:<pre><code>/*>*/</code></pre></p> <p>这就是结果</p> <p><a href="https://i.sstatic.net/lwHJc.png" rel="nofollow noreferrer"><img src="https://cdn.txt58.com/i/AWkuc3N0YXRpYy5uZXQvbHdISmMucG5n" alt="enter image description here"/></a></p> <p>看起来很奇怪,但它应该能正常工作。</p> </answer> <answer tick="false" vote="0"> <p>您可以对 cshtml 代码和 javascript 使用 <pre><code><text></code></pre> 标签</p> </answer> <answer tick="false" vote="0"> <p>不要这样做。如果 <pre><code>@r.Value</code></pre> 的内容碰巧具有以阻止 JavaScript 表达式的方式格式化的 JavaScript 代码,则当前接受的最高答案存在安全漏洞。</p> <p>您必须以其他方式传输数据。例如,您可以创建不可见的 DOM 节点并为其设置 <pre><code>data-*</code></pre> 属性。</p> </answer> <answer tick="false" vote="-3"> <p>在 JS 脚本中将 Razor 代码封装在 @{ } 中,并注意仅使用 @ 有时它不起作用:</p> <pre><code>function hideSurveyReminder() { @Session["_isSurveyPassed"] = true; } </code></pre> <p>这将产生 </p> <pre><code>function hideSurveyReminder() { False = true; } </code></pre> <p>在浏览器中 =(</p> </answer> </body></html>
如何在 Razor 模板中有条件地渲染样式属性而不导致 NullReferenceException?
我正在使用C#和Razor引擎(Razor模板引擎)开发一个模板项目。目标是使用我自己的 JSON 定义创建 React 代码。 我的 AppDefinition.json 看起来像这样...
我正在遵循有关向身份用户添加自定义属性的 Microsoft 身份教程。我已经添加了微软文档建议的更改,但是我遇到了一个小的视觉错误。 代码...
民间, 这段代码正是我想要的: 显示来自机器人的消息 (div),表示正在思考 等待 API 调用完成消息(div)的更新并滚动到消息(div) 它...
System.InvalidOperationException:“渲染句柄尚未分配。”在 Blazor 服务器中
我创建了一个简单的 Blazor 应用程序,我需要在 index.razor 页面上显示加载屏幕。我不需要将其包含在 index.razor 页面上。我正在使用一些间接的方式来做到这一点......
CSC:警告RSG002:未为附加文件指定TargetPath
使用 .net-6.0 构建 razor 页面应用程序的命令 dotnet build 会抛出很多警告,例如 CSC:警告 RSG002:未为附加文件指定 TargetPath: C:\dev\Foo\Foo\Pages\Admin\
我正在尝试更改整个解决方案的 Radzen 数据网格的行高,但没有任何运气。 我发现如果我将此样式部分直接添加到 .razor fi 中,我可以做到这一点...