更新站點地圖結點:儘管下面的所有文字,問題是相當小 - 在地圖的配置參數includeAssembliesForScan錯誤的程序集名稱。它不應該包含「.dll」部分。ASP.NET MVC網站地圖提供商不會產生從屬性
我有MvcSiteMapProvider v.3.2.2.0。
如描述here,我使用屬性來定義代碼中的站點地圖節點。但歸因的操作不會生成爲節點。僅生成在站點地圖中明確定義的節點。
這是我的代碼:
網站地圖:
<?xml version="1.0" encoding="utf-8" ?>
<mvcSiteMap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-3.0"
xsi:schemaLocation="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-3.0 MvcSiteMapSchema.xsd"
enableLocalization="true">
<mvcSiteMapNode
title="$resources:Mvc.sitemap,MainMenuTop_Main"
controller="Home"
action="Index"
key="Home">
<mvcSiteMapNode
title="$resources:Mvc.sitemap,Account"
controller="Account"
action="LogOn"
clickable="false"
key="Account" />
</mvcSiteMapNode>
</mvcSiteMap>
家居控制器:
[HttpGet]
[MvcSiteMapProvider.MvcSiteMapNode(
ParentKey = "Home",
Title = "$resources:Mvc.sitemap,MainMenuTop_About")]
public ActionResult About()
{
return View();
}
帳戶控制:
[HttpGet]
[MvcSiteMapProvider.MvcSiteMapNode(
ParentKey = "Account",
Title = "$resources:Mvc.sitemap,Register")]
public ActionResult Register()
{
return View();
}
所以,這兩個動作不會成爲站點地圖中的節點。換句話說,MvcSiteMapNodeAttribute屬性不起作用。爲什麼?
我的web.config中的部分地圖。
<siteMap defaultProvider="MvcSiteMapProvider" enabled="true">
<providers>
<clear/>
<add
name="MvcSiteMapProvider"
type="MvcSiteMapProvider.DefaultSiteMapProvider, MvcSiteMapProvider"
siteMapFile="~/Mvc.Sitemap"
securityTrimmingEnabled="true"
cacheDuration="5"
enableLocalization="true"
scanAssembliesForSiteMapNodes="true"
includeAssembliesForScan="Site2.dll"
excludeAssembliesForScan=""
attributesToIgnore="visibility"
nodeKeyGenerator="MvcSiteMapProvider.DefaultNodeKeyGenerator, MvcSiteMapProvider"
controllerTypeResolver="MvcSiteMapProvider.DefaultControllerTypeResolver, MvcSiteMapProvider"
actionMethodParameterResolver="MvcSiteMapProvider.DefaultActionMethodParameterResolver, MvcSiteMapProvider"
aclModule="MvcSiteMapProvider.DefaultAclModule, MvcSiteMapProvider"
siteMapNodeUrlResolver="MvcSiteMapProvider.DefaultSiteMapNodeUrlResolver, MvcSiteMapProvider"
siteMapNodeVisibilityProvider="MvcSiteMapProvider.DefaultSiteMapNodeVisibilityProvider, MvcSiteMapProvider"
siteMapProviderEventHandler="MvcSiteMapProvider.DefaultSiteMapProviderEventHandler, MvcSiteMapProvider"/>
</providers>
</siteMap>
我只是有一個類似的問題。你能告訴我你的標準命名空間和你的程序集名稱是怎樣的嗎? 在我的應用程序中,它們不匹配,這就是MvcSiteMap認爲它將在Area內導致Url生成錯誤的原因。 – hydr 2012-05-04 14:51:17
我有相同的名稱空間名稱和程序集名稱。但是mvcSiteMapNode標題的資源位於Resources命名空間中(實際上它是App_GlobalResources項目文件夾)。 – user808128 2012-05-16 12:09:10
我的ASP.NET MVC應用程序中沒有區域。 – user808128 2012-05-16 12:15:18