2018年10月16日

MvcSiteMapProvider PreservedRouteParameters於麵包屑的使用

在使用 MvcSiteMapProvider套件產生麵包屑時,如果使用 PreservedRouteParameters增加參數,則在子節點的 url中需要附帶相同的參數,麵包屑中父節點的 url才會帶入。 '

舉例,現在有一個父節點 /Order/List?groupId=1,一個子節點 /Order/Detail?orderId=3,程式需要這樣寫:

DynamicNodeProvider:
DynamicNode parentNode = new DynamicNode
{
    Title = "訂單列表",
    Key = "NodeA",
    Controller = "Order",
    Action = "List"
};

parentNode.PreservedRouteParameters.Add("groupId");

DynamicNode childNode = new DynamicNode
{
    Title = "訂單明細",
    ParentKey = "NodeA"
    Key = "NodeB",
    Controller = "Order",
    Action = "Detail"
};

OrderController:
public class OrderController : Controller
{
    public ActionResult List(int groupId)
    {
        ...
    }

    public ActionResult List(int orderId, int groupId)
    {
        ...
    }
}

Order List HTML:
<a href="/Order/Detail?orderId=3&groupId=1" ></a>

沒有留言:

張貼留言