【发布时间】:2014-05-25 16:51:22
【问题描述】:
我需要向我的 MVCSitemap 插入多个外部链接。基本上,有一个名为“LINKS”的父节点,我将通过管理员视图填充来自另一个应用程序的 URL。我想知道是否有一个给定参数的内置方法可以找到父节点并插入它一个子节点,就像我在手动编辑文档一样。
【问题讨论】:
标签: c# mvcsitemapprovider
我需要向我的 MVCSitemap 插入多个外部链接。基本上,有一个名为“LINKS”的父节点,我将通过管理员视图填充来自另一个应用程序的 URL。我想知道是否有一个给定参数的内置方法可以找到父节点并插入它一个子节点,就像我在手动编辑文档一样。
【问题讨论】:
标签: c# mvcsitemapprovider
建议的实现方式是使用自定义IDynamicNodeProvider 或ISiteMapNodeProvider 来提供节点,并在修改SiteMap 数据以使缓存无效的操作方法上使用SiteMapCacheReleaseAttribute,以便SiteMap 将在下一个加载新节点访问时间。
[HttpPost]
[SiteMapCacheRelease]
public ActionResult Edit(int id, Product product)
{
try
{
using (var db = new CRUDExample())
{
var model = (from p in db.Product
where p.Id == id
select p).FirstOrDefault();
if (model != null)
{
model.Name = product.Name;
db.SaveChanges();
}
}
return RedirectToAction("Index");
}
catch
{
return View();
}
}
SiteMapCacheReleaseAttribute 应放置在您希望立即看到更改发生的所有添加、编辑和删除操作方法上,并且通常应仅应用于 [HttpPost] 端,因为 [HttpGet] 通常不会更改任何内容数据。
【讨论】: