2017-04-20 56 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> 
} 
相关问题