[英]Change href based on requested view
我試圖弄清楚如何根據請求的視圖更改_layout.cshtml上的鏈接。
當我在首頁/索引上時,我希望href為'#Unhealthy',但是在其他任何頁面上時,我希望它重定向回首頁'/ Home / Index /#Unhealthy'
在其他頁面上時
<li>
<a href="/Home/Index/#Unhealthy"><i class="fa fa-warning warning"></i></a>
</li>
在家/索引上時
<li>
<a href="#Unhealthy"><i class="fa fa-warning warning"></i></a>
</li>
如何確定請求的視圖以交換該值?
*注意:我想如果我不能在服務器上執行此操作,則始終可以使用javascript / jquery更改值
如果您使用的是MVC,請使用razor,因為我標記了MVC,所以我做了這個回答。 如果您正在執行MVC應用程序,則這是迄今為止最好的方法,不需要任何JavaScript。
@if (window.location.pathname == "/"){
<li>
<a href="#Unhealthy"><i class="fa fa-warning warning"></i></a>
</li>
}
else{
<li>
<a href="/Home/Index/#Unhealthy"><i class="fa fa-warning warning"></i></a>
</li>
}
如果您確實想用jQuery的方式做到這一點:
jQuery:
$( document ).ready(function() {
if (window.location.pathname == "/"){
$("#Link").prop("href", "#Unhealthy")
}
else {
$("#Link").prop("href", "/Home/Index/#Unhealthy")
}
});
的HTML:
<li>
<a id="Link" href="#"><i class="fa fa-warning warning"></i></a>
</li>
@{
var controller = ViewContext.RouteData.Values["controller"].ToString().ToLower();
var action = ViewContext.RouteData.Values["action"].ToString().ToLower();
}
<li><a href="@(controller == "home" && action == "index" ? "#Unhealthy" : "/Home/Index/#Unhealthy")"><i class="fa fa-warning warning"></i></a></li>
喬什·史蒂文斯(Josh Stevens)的答案應該可以使用MVC剃刀代碼工作,但是可以使用@ Html.ActionLink重載在每個頁面上使用相同的代碼。
快速搜索發現此鏈接是舊語法但概念正確
未經測試嘗試
@ Html.ActionLink(“鏈接文本”,“索引”,“首頁”,null,null,“不健康”,null,null)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.