Asp.net mvc 3 如何为包含多个单词的操作名称插入空格?
我尝试在页面上显示面包屑:Asp.net mvc 3 如何为包含多个单词的操作名称插入空格?,asp.net-mvc-3,asp.net-mvc-4,Asp.net Mvc 3,Asp.net Mvc 4,我尝试在页面上显示面包屑: @if (ViewContext.RouteData.Values["controller"] != "MainController") { <li> @Html.ActionLink(ViewContext.RouteData.Values["controller"] .ToString(), "Index", ViewContext.RouteData.Values["contro
@if (ViewContext.RouteData.Values["controller"] != "MainController")
{
<li>
@Html.ActionLink(ViewContext.RouteData.Values["controller"]
.ToString(), "Index",
ViewContext.RouteData.Values["controller"].ToString())
</li>
}
@if (ViewContext.RouteData.Values["action"] != "Index")
{
<li>
@Html.ActionLink(ViewContext.RouteData.Values["action"]
.ToString(), ViewContext.RouteData.Values["action"].ToString(),
ViewContext.RouteData.Values["controller"].ToString())
</li>
}
@if(ViewContext.RouteData.Values[“controller”]!=“MainController”)
{
@ActionLink(ViewContext.RouteData.Values[“controller”]
.ToString(),“索引”,
ViewContext.RouteData.Values[“controller”].ToString()
}
@if(ViewContext.RoutedData.Values[“action”]!=“Index”)
{
@ActionLink(ViewContext.RouteData.Values[“action”]
.ToString(),ViewContext.RoutedData.Values[“action”]。ToString(),0,
ViewContext.RouteData.Values[“controller”].ToString()
}
这对于显示“Controller”或“Controller>Action”(不使用“>”-am使用jbreadcrumps显示分隔符)非常有效
但是,例如,如果我的操作名称类似于ScheduleAppointment
,则它将显示为“控制器>ScheduleAppointment”,而我希望它显示为“ScheduleAppointment”(即插入空格)
是否可以在页面上的@{}
函数中执行此操作?还是我必须写一个扩展
在这两种情况下,代码示例都会大有帮助。谢谢。您可以使用“DisplayName”属性创建自定义属性,并将其放在操作中。然后在视图中,您可以访问当前控制器
ViewContext.Context
并使用反射获取当前操作的自定义属性实例,并获取“DisplayName”属性值。
或者,您可以在ViewBag中设置属性,然后在view中使用它。我该如何做,因为我无法理解它。谢谢。你到底想不出什么?如何创建您可以在此处找到的自定义aa贡。要使用反射获取自定义属性的属性,请使用类似以下内容:ViewContext.Context.GetType().GetMethod(ViewContext.RoutedData.Values[“action”].ToString()).Attributes.First(x=>x是CustomAttribute)。DisplayNamei thik如果要回答问题,应尽可能给出完整的答案。就目前而言,你目前的回答更像是一个评论。我这样说只是为了帮助你自己和OP追求质量