Razor是ASP.NET网页和ASP.NET MVC使用的模板语言(自版本3开始)。它在HTML生成之上添加了一层抽象。它支持HTML标记和C#或VB代码之间的无缝转换。标记和代码之间的转换由“@”符号表示。
我如何嵌套 WebGrid,并为每列设置大量格式。我可以做一个嵌套的 for 循环,但我基本上需要它来进行分页。或者还有其他更好的选择吗?
我们有一些带有 jQuery vsDoc 的文件,如下所示,用于语法帮助; @如果(假) { <p>我们有一些包含 jQuery vsDoc 的文件,如下所示,用于语法帮助;</p> <pre><code>@if (false) { <script src="@Url.Content("~/Scripts/jquery.validate-vsdoc.js")" type="text/javascript"></script> } </code></pre> <p>它会生成一些关于无法访问代码的恼人的编译器警告,我想用 <a href="http://www.dotnetperls.com/pragma" rel="nofollow noreferrer">#prama warning</a> 包装该语句,但我无法弄清楚 Razor 中的语法。</p> </question> <answer tick="true" vote="7"> <pre><code>@{ #pragma warning disable } @if (false) { <script src="@Url.Content("~/Scripts/jquery.validate-vsdoc.js")" type="text/javascript"> </script> } @{ #pragma warning restore } </code></pre> <p>对我有用</p> </answer> <answer tick="false" vote="0"> <p>我认为这应该有效...</p> <pre><code>@{#pragma warning disable} </code></pre> </answer> </body></html>
前言: 我的后端有一个静态格式化函数,它接受一个 int Id 并返回字符串 SerialNumber。我想把它保留在原处。 在其中一个视图中 - 我正在显示一列 Serial
Blazor:由于内部错误,功能“Razor TagHelperProvider 功能”当前不可用
我在 VS 2022(最新的 17.12 Preview 2.1)中遇到了这个错误。 Blazor:由于内部错误,功能“Razor TagHelperProvider 功能”当前不可用 如果你观察堆栈跟踪,它会说
MVC 的 cshtml 中的 CSS:基于文本中关键字的条件格式
我正在为 ASP.NET Core MVC 实现排序,我想为排序所依据的列标题添加背景颜色。 在其他线程上,我看到使用脚本可能是
提交 Razor 页面表单后,本地 SQL Server Express 数据库中未显示更改
我正在尝试连接到本地 SQL Server Express 数据库,但是当我使用 .cshtml.cs 页面提交表单时,命令执行后数据不会出现在表中。我不确定这是否...
我在处理await Task返回null情况时遇到一个问题。 在下面的代码中,如果 GetByName() 方法返回 null。然后在我的调用代码中 GUI 将出现以下异常。我认为这是因为 GetByName()
更改 Razor @ref 组件中的属性不会更新其在 HTML 元素中的用法
这里是 Blazor 的初学者。 我有一个非常简单的 Razor 组件,它有一个名为 Paragraph 的属性,该属性由 HTML 元素使用: @段落 @代码 { 酒吧...
Bootstrap 和 Font Awesome 图标未出现
我的 _layout 中有这段代码,它会按照我想要的方式呈现我想要的内容。 现在,在我的不同视图中(请参阅第二个代码片段),我尝试使用 Bootstrap 或 Font Awesome 插入一些图标,但不是......
webgrid 中的分页在 asp.net mvc 5 中不起作用
我有以下视图和控制器。问题是,当启用分页并单击下一页时,上一个视图消失了 @使用系统 @使用System.Web.Helpers @*@型号列表 我有以下视图和控制器。问题是,当启用分页并单击下一页时,上一个视图消失了 @using System @using System.Web.Helpers @*@model List<DataTransferObjects.UserClaimHistory>*@ <!DOCTYPE html> <html lang="en"> <head runat="server"> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="~/Content/style.css" rel="stylesheet" type="text/css" /> @*<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>*@ <script src="~/Scripts/jquery-1.7.1.js"></script> <style> /*Here I will write some css for looks good*/ th, td { padding: 5px; } th { background-color: gray; } </style> </head> @{ ViewBag.Title = "ViewReports"; var grid = new WebGrid(Model, canPage: false, rowsPerPage: 2, selectionFieldName: "selectedRow", ajaxUpdateContainerId: "gridContent", canSort: false); } @{ var fromDateVal = (DateTime)ViewBag.fromDate; var toDateVal = (DateTime)ViewBag.toDate; } @using (Html.BeginForm("Index", "ViewReport", FormMethod.Post)) { <div class="container"> @{ var homeHeader = Html.Partial("_HomeHeader"); } @homeHeader <div id="logout-div"> @Html.ActionLink("Log Out", "Logout", "Home", null, null ) </div> @{ var homeLeftPanel = Html.Partial("_HomeLeftPanel"); } @homeLeftPanel <div> From Date: @Html.TextBox("fromDate", string.Format("{0:yyyy-MM-dd}", fromDateVal), new { @id = "fromDate", @class = "datefield", type = "date" }) To Date: @Html.TextBox("toDate", string.Format("{0:yyyy-MM-dd}", toDateVal), new { @id = "toDate", @class = "datefield", type = "date" }) <input type="submit" value="Search" /> </div> <div id="main" style="padding: 25px;"> @grid.GetHtml( htmlAttributes: new { id = "MainGrid", width = "60%" }, tableStyle: "table table-bordered table-responsive", headerStyle: "header", alternatingRowStyle: "alt", selectedRowStyle: "select", columns: grid.Columns( grid.Column("UserName", "User Name"), grid.Column("Email", "Email"), grid.Column("Claim", "Accessed"), grid.Column(header: "AccessedOn", format: (item) => string.Format("{0:dd-MM-yyyy}", item.AccessedOn)), grid.Column(format: (item) => { if (item.Count > 1) { var subGrid = new WebGrid(source: item.List, canSort: false); return subGrid.GetHtml(displayHeader: true, htmlAttributes: new { id = "SubGrid", width = "100%" }, columns: subGrid.Columns( subGrid.Column("UserName", "User Name"), subGrid.Column("Email", "Email"), subGrid.Column("Claim", "Accessed"), subGrid.Column("AccessedOn", "AccessedOn") ) ); } else { return null; } }) ) ) <script> $(document).ready(function () { var size = $("#main #MainGrid > thead > tr > th").size(); // get total column $("#main #MainGrid > thead > tr > th").last().remove(); // remove last column $("#main #MainGrid > thead > tr").prepend("<th></th>"); // add one column at first for collapsible column $("#main #MainGrid > tbody > tr").each(function (i, el) { $(this).prepend( $("<td></td>") .addClass("expand") .addClass("hoverEff") .attr('title', "click for show/hide") ); //Now get sub table from last column and add this to the next new added row var table = $("table", this).parent().html(); // // alert(table); //add new row with this subtable // ADD CLICK EVENT FOR MAKE COLLAPSIBLE if (table !== null) { $(this).after("<tr><td></td><td style='padding:5px; margin:0px;' colspan='" + (size - 1) + "'>" + table + "</td></tr>"); $("table", this).parent().remove(); $(".hoverEff", this).live("click", function () { $(this).parent().closest("tr").next().slideToggle(100); $(this).toggleClass("expand collapse"); }); } else { $(this).find('td:eq(0)').removeClass(); } }); //by default make all subgrid in collapse mode $("#main #MainGrid > tbody > tr td.expand").each(function (i, el) { $(this).toggleClass("expand collapse"); $(this).parent().closest("tr").next().slideToggle(100); }); }); </script> </div> @if (ViewBag.Count > 0) { <div> @Html.ActionLink("Export", "ExportToExcel", "ViewReport", new { fromDate = fromDateVal, toDate = toDateVal}, null) </div> } @{ var homeFooter = Html.Partial("_HomeFooter"); } @homeFooter </div> } </html> 这是控制器: public ActionResult Index(DateTime? fromDate, DateTime? toDate) { if (!fromDate.HasValue) fromDate = DateTime.Now.Date; if (!toDate.HasValue) toDate = fromDate.GetValueOrDefault(DateTime.Now.Date).Date.AddDays(1); if (toDate < fromDate) toDate = fromDate.GetValueOrDefault(DateTime.Now.Date).Date.AddDays(1); ViewBag.fromDate = fromDate; ViewBag.toDate = toDate; var userClaims = DbAccessWebApiHandler.GetUserClaimAccesshistory(new DateSelection { StartDate = fromDate.Value, EndDate = toDate.Value }); if (userClaims != null) { ViewBag.Count = userClaims.Count; var newList = userClaims.GroupBy(x => new { x.UserName, x.Email, x.Claim, x.AccessedOn.Date }) .Select(y => new UserClaimHistoryGroup { UserName = y.Key.UserName, Email = y.Key.Email, Claim = y.Key.Claim, AccessedOn = y.Key.Date, List = y.ToList(), Count = y.ToList().Count }); return View(newList); } userClaims = new List<UserClaimHistory>(); return View(userClaims); } [System.Web.Mvc.HttpGet] public ActionResult ExportToExcel(DateTime? fromDate, DateTime? toDate) { if (!fromDate.HasValue) fromDate = DateTime.Now.Date; if (!toDate.HasValue) toDate = fromDate.GetValueOrDefault(DateTime.Now.Date).Date.AddDays(1); if (toDate < fromDate) toDate = fromDate.GetValueOrDefault(DateTime.Now.Date).Date.AddDays(1); ViewBag.fromDate = fromDate; ViewBag.toDate = toDate; var userClaims = DbAccessWebApiHandler.GetUserClaimAccesshistory(new DateSelection { StartDate = fromDate.Value, EndDate = toDate.Value }); if (userClaims != null) { var gv = new GridView(); gv.AutoGenerateColumns = false; gv.Columns.Add(new BoundField { HeaderText = "UserName", DataField = "UserName" }); gv.Columns.Add(new BoundField { HeaderText = "Email", DataField = "Email" }); gv.Columns.Add(new BoundField { HeaderText = "Accessed", DataField = "Claim" }); gv.Columns.Add(new BoundField { HeaderText = "Date", DataField = "AccessedOn" }); var dt = new DataTable(); dt.Columns.Add("UserName"); dt.Columns.Add("Email"); dt.Columns.Add("Claim"); dt.Columns.Add("AccessedOn"); foreach (var item in userClaims) { dt.Rows.Add(item.UserName, item.Email, item.Claim, item.AccessedOn); } gv.DataSource = dt; gv.DataBind(); for (var i = 0; i < userClaims.Count; i++) { gv.Rows[i].Height = 40; } Response.ClearContent(); Response.Buffer = true; Response.AddHeader("content-disposition", "attachment; filename=Reports.xls"); Response.ContentType = "application/ms-excel"; Response.Charset = ""; var sw = new StringWriter(); var htw = new HtmlTextWriter(sw); gv.RenderControl(htw); Response.Output.Write(sw.ToString()); Response.Flush(); Response.End(); } return View("Index"); } 能够通过以下脚本工作 var links = $('a[href*=page], a[href*=sort]'), form = $('form'); links.click(function () { form.attr("action", this.href); $(this).attr("href","javascript:"); form.submit(); }); 如在 MVC4 站点中进行排序或分页操作期间如何让 WebGrid 以 POST 而不是 GET 方式进行操作?
我正在使用 2sx 应用程序活动、课程和注册版本 6.17.1。我想通过向事件内容类型添加更多字段来扩展应用程序。我正在运行 DNN 9.13.04 和 2sxc 17.09.00。 我添加了...
使用 nuglify 或 Web Optimizer 缩小 razor html 页面?
我正在尝试 ASP.NET Core Web Optimizer,它在底层使用 NUglify。它非常适合 js 和 css,并且显然也支持 html,但我无法让它与 razor csh 一起工作...
我正在尝试使用此处的 Engine.Razor 库在 C# 中生成电子邮件模板。但我不明白他们的关键财产是做什么的? 根据文档我这样运行 电子邮件正文 = ...
我有一个 MudBlazor 应用程序,并且经常注意到百分比高度和宽度经常被忽略。 在我当前的示例中,我有一个 MudTab,我想在其中显示一个可滚动的 MudTreeView...
我正在 .NET 6 中构建 Blazor(Blazor 服务器)项目,我遇到了一个问题,在一个组件中我可以声明一个变量,但是当我尝试在我之后立即使用该变量执行某些操作时
根据这些商品的最低和最高价格,我想为我的复选框过滤器创建动态价格范围。例如,如果最低价格和最高价格之间的差异是 10 美元,我希望...
ASP.NET Core 8 Razor 页面路由与参数冲突的 PageModel
我正在使用 ASP.NET Core 8.0.8。我有各种模型代表连接数据库中的不同表。我有一个 Table.cshtml razor 页面,它将采用表的名称作为参数...
ASP.NET Core 8.0 Razor - 循环模型时出现 NullReferenceException
我正在尝试构建一个简单的应用程序,它可以迭代“汽车”(型号)名称。 尝试迭代通过 API 调用的项目时,出现以下错误。 索引.cshtml: @页 @模型
这可能很简单,但我只是还没有找到方法......:) 我在 cshtml 视图中有这段代码(示例已简化): @if(Model.LinkUrl != null) { 这可能很简单,但我只是还没有找到方法......:) 我在 cshtml 视图中有此代码(示例已简化): @if(Model.LinkUrl != null) { <a href="@Model.LinkUrl"> <h2>@Model.Name</h2> <img src="@Model.ImageUrl" /> </a> } else { <div> <h2>@Model.Name</h2> <img src="@Model.ImageUrl" /> </div> } 根据模型中是否有链接,我必须将相同的代码(和)包装在 或 中。 有没有办法避免重复这段代码: <h2>@Model.Name</h2> <img src="@Model.ImageUrl" /> 即有某种我可以调用来渲染它的辅助方法/混合吗? @functions { void SayHello(string something) { <h3>Hello @something</h3> } } 或者 Func<string, IHtmlContent> SayHello = @<h1>Hello @item</h1>;
我正在开发 Blazor 服务器项目,由于我是这项技术的新手,我面临着一个我无法理解的问题。 简而言之,我有一个小公式来将对象添加到我的 postgresDB 中。这个公式...