2017-04-20 13 views
0

返回我有這兩條線在.cshtml值:如何隱藏在局部視圖鏈接取決於從控制器

<li><a href="@Url.Action("GetAllVehicleLocations", "VehicleReporting", new { @class = "page-scroll" })">All Vehicle Locations</a></li> 

<li><a href="@Url.Action("GetToBeDoneVehicles", "VehicleReporting", new { @class = "page-scroll" })">To Be Done Vehicles</a></li> 

我想隱藏這些超鏈接根據從控制器返回的值。該值是一個ClientID。如果ClientID = 1,則隱藏鏈接,否則使其可見。

我已經嘗試了各種不同的實現,下面是我的最後一個。

.cshtml:

if (@Html.Action("GetSelectedClientID", "VehicleReporting") != 1) 
{ 
    <li><a href="@Url.Action("GetAllVehicleLocations", "VehicleReporting", new {@class = "page-scroll"})">All Vehicle Locations</a></li> 
    <li><a href="@Url.Action("GetToBeDoneVehicles", "VehicleReporting", new {@class = "page-scroll"})">To Be Done Vehicles</a></li> 
} 

控制器:

[Authorize] 
[HttpGet] 
public ActionResult GetSelectedClientID() 
{ 
    selectedClientId = HelperMethods.GetClientId(); 
    return PartialView(selectedClientId); 
} 

任何幫助理解。請注意,我是MVC的新手!

+0

請注意,模型 - 視圖 - 控制器標記是問題關於模式。 ASP.NET-MVC實現有一個特定的標籤。 –

回答

1

你的控制器應在這種情況下返回純文本或者你可以返回JSON和使用Ajax調用了這一點,但下面應該讓你去:

[Authorize] 
[HttpGet] 
public ActionResult GetSelectedClientID() 
{ 
    var selectedClientId = HelperMethods.GetClientId().ToString(); 
    return Content(selectedClientId); 
} 

,現在鑑於你可以檢查返回的字符串值:

@if(Html.Action("GetSelectedClientID", "VehicleReporting").ToString() != "1") 
{ 
    <li><a href="@Url.Action("GetAllVehicleLocations", "VehicleReporting", new {@class = "page-scroll"})">All Vehicle Locations</a></li> 
    <li><a href="@Url.Action("GetToBeDoneVehicles", "VehicleReporting", new {@class = "page-scroll"})">To Be Done Vehicles</a></li> 
} 
+0

非常感謝!你的答案在我改成這行後有效'string selectedClientId = HelperMethods.GetClientId()。ToString();'並且在'if'之前也刪除了'@'符號。請修改您的答案,然後我將其標記爲已接受 – MadDev

+0

更新了@RMadd,但我相信我們需要以'@'開頭來開始編寫c#代碼 –

+0

對不起,我應該提到代碼已經在另一個'if'塊以'@' – MadDev

0

如果我理解正確,您希望根據值有條件地隱藏部分視圖。

你可以使用ViewData字典在你的主要行動:

[Authorize] 
[HttpGet] 
public ActionResult MyAction() 
{ 
    ViewData["selectedClientId"] = HelperMethods.GetClientId(); 
    return View(); 
} 

並且在視圖檢查它的價值是這樣的:

@if (ViewData["selectedClientId"] != 1) 
{ 
    <li><a href="@Url.Action("GetAllVehicleLocations", "VehicleReporting", new {@class = "page-scroll"})">All Vehicle Locations</a></li> 
    <li><a href="@Url.Action("GetToBeDoneVehicles", "VehicleReporting", new {@class = "page-scroll"})">To Be Done Vehicles</a></li> 
} 
相關問題