我知道這可能是一個古老的問題,但與我在一起,因爲這與網絡中解釋的其他人不同。我在bootstrap中有一些選項卡,根據被擊中的動作,它必須被設置爲主動。我也有一些子選項卡,根據被擊中的動作,它也必須設置爲主動。在ASP.NET MVC中設置一個啓動選項卡活動
這裏是它的外觀像一個形象:
因此,當一個子標籤正在積極父標籤必須是活躍。
所以我想,我節省了PAGEID每個動作,並根據視圖上的PAGEID我可以將其設置爲創建一個新的屬性活躍與否:
這裏是屬性:
public class YcoPageId : Attribute
{
public YcoPageId(int pageId)
{
PageId = pageId;
}
public int PageId { get; }
}
這裏是動作:
[YcoPageId(1)]
public ActionResult Admin()
{
return View();
}
對於視圖,我想創建一個擴展方法來查看選項卡和子選項卡是否處於活動狀態!
這裏是我的代碼:
public static bool IsActive(this HtmlHelper htmlHelper, params int[] ids)
{
var viewContext = htmlHelper.ViewContext;
var action = viewContext....
//How to get the YcoPageId attribute from here and see the Id
//Here i will test if ids contain id but dont know how to get it...
}
,如果你認爲添加的每一頁的ID是壞主意,我覺得對於我來說,我會用這個ID爲其他目的,因爲它會像標識符一個具體的行動...
所以我的問題是我怎麼能得到屬性YcoPageId
當前行動在我的擴展方法?
的觀點看起來就像這樣:
<li class="@(Html.IsActive(1, 4, 5... etc)? "active" : "")">
<a href="@url">
<div class="row text-center">
<div class="col-md-12">
<i class="fa @fontAwesomeIcon fa-4x" aria-hidden="true"></i>
<br/>@menuName
</div>
</div>
</a>
</li>
如果有什麼更好的想法如何解決這個問題,請繼續!
在此先感謝!
這些標籤的關係是什麼?頂部選項卡是否與控制器相關,並且子選項卡與所選控制器中的操作方法相關? –
不,他們沒有任何關係,因爲我正在將一些ASP.NET Webforms代碼遷移到ASP.MVC中,所以我可以創建任何類型的關係,對我來說它的工作很重要:) –
@StephenMuecke但是現在我正在思考爲父控制器設置一個控制器是有意義的,但這會讓我測試操作名稱的子選項卡,同時僅爲控制器名稱選擇父控制器,這就是你想要解釋的東西嗎? –