MVC控制器激活和取消激活

时间:2016-02-02 16:41:16

标签: asp.net-mvc model-view-controller

我在视图中的href下有一个submit元素。我想激活它并在会话变量的此视图的控制器的函数index()下停用。有可能吗?

<a href="/Checkout/AddressAndPayment" input type="submit" data-id="1" role="button" >
    BuyItem
</a>

1 个答案:

答案 0 :(得分:0)

因此,禁用链接的唯一方法是在UI中。有很多方法可以做到这一点......

我想MVC hack会在ViewBag中存储一些东西。在控制器中,您可以设置任何变量,例如:

ViewBag.CanIClickMyLink = true;

然后在视图中你可以利用它:

@Html.ActionLink("Buy Item", "AddressAndPayment", "Checkout", null, new { @enabled = ViewBag.CanIClickMyLink })

<a href="@(ViewBag.Enabled ? "https://www.google.co.uk" : "#")">
       BuyItem
</a>

或者,您可以使用Session来访问用户会话中的属性,这可能会有更多的问题。我希望这有助于你开始,我总能扩展我的答案。

我个人会在MVC模型属性中包含任何重要的变量,例如用户授权。它总是感觉更干净,更健壮。与动态ViewBag不同,它是一个强类型类。使用ViewBag时,很容易出现错误。