在ASP.NET MVC 6项目中,我有以下内容:
[Route("help/how-it-works")]
public IActionResult HowItWorks() {
return View();
}
Run Code Online (Sandbox Code Playgroud)
我想创建一个标签助手,如下所示:
<a class="menu" asp-controller="Help" asp-action="HowItWorks" route-is="help/how-it-works" css-class="active">How it works</a>
Run Code Online (Sandbox Code Playgroud)
所以route-is标签帮助器将检查当前路由是否为"help/how-it-works"...如果是,则将"active"添加到A标签的css类.
所以我开始创建一个标签助手:
[TargetElement("a", Attributes = "route-is, css-class")]
public class RouteTagHelper : TagHelper
{
public override void Process(TagHelperContext context, TagHelperOutput output)
{
String routeIs = context.AllAttributes["route-is"].ToString();
String cssClass = context.AllAttributes["css-class"].ToString();
if (String.IsNullOrWhiteSpace(cssClass))
cssClass = "active";
ViewContext.RouteData.Values.Keys;
}
}// Process
Run Code Online (Sandbox Code Playgroud)
我的问题是如何确定当前路由是否为"help/how-it-works",以及是否将Css类添加到A标记而不更改其他任何内容.
有没有人知道如何做到这一点?
更新1
使用属性路由时解决了重复值的问题,并添加了Daniel JG提出的替代方法
[TargetElement("a", Attributes = RouteIsName)]
[TargetElement("a", Attributes = RouteHasName)]
public class ActiveRouteTagHelper : TagHelper
{
private const String …
Run Code Online (Sandbox Code Playgroud) 我注意到有几种方法可以使用Views和PartialViews:
RenderAction,RenderPartial和"返回PartialView"
放置在HTML中的RenderAction只会调用一个Action并渲染返回的View(返回的View可以是局部视图还是视图?)
RenderPartial将简单地检索View的内容而不执行任何Controller操作
最后,"返回视图"和"返回部分视图"之间有什么区别?
谢谢
我知道大多数人都使用以下脚本
(function(){})();
Run Code Online (Sandbox Code Playgroud)
用于匿名函数调用.但周围的parantheses的功能是什么?
var g = (); // syntax error, why?
var g= (function(){}); // correct
Run Code Online (Sandbox Code Playgroud)
有人可以帮我解释一下吗?
我有一个由字符串生成器创建的长xml文档,其中包含起始标记
<?xml version="1.0" encoding="UTF-8"?>
<xxxxxx>
..
</xxxxxx>
,我想将此xml转换为iso-8859-9编码类型.我怎样才能做到这一点?或者任何人都建议我用另一种方法在C#中创建ISO-8859-9编码类型xml.
我使用的是SQL Server 2008.我有一个由三列组成的表,ID为字符串类型,createtime为DataTime类型,status为int.
我想在状态值为10的所有记录中选择记录,同时createtime是最早的记录.任何想法如何写这样的查询?
BTW:ID是聚集索引,我还有createtime列的索引.
乔治,提前谢谢
我正在研究一个对象列表,不幸的是,我没有从调试中获取信息,看看我哪里出错了.
我有一个自定义类,我实现了CompareTo方法,并在该类的项目列表上调用.Sort().不幸的是,我的程序实际上从未实际使用compareTo()方法......它在调用.Sort()时会立即出错并立即关闭.
通常我应该注意什么?
这是我的类定义,类的接口列表.
/// <summary>
/// Summary description for ClientWorkspace.
/// </summary>
public class ClientWorkspace : IStorable
{ }
Run Code Online (Sandbox Code Playgroud)
我没有列出compareTo方法,因为它甚至没有得到该代码.
c# ×2
asp.net ×1
asp.net-mvc ×1
collections ×1
javascript ×1
sorting ×1
sql ×1
sql-server ×1
utf-8 ×1
xml ×1