@ Html.ActionLink不起作用

时间:2013-12-03 04:53:05

标签: c# asp.net-mvc razor orchardcms actionlink

我有一个果园项目,我在MVC中创建了一个模块。我想使用@ Html.ActionLink将特定用户的id传递给控制器​​,但它不会调用控制器。这是我的代码:

在视图中:

 @Html.ActionLink("100111", "AddToCart", "ShoppingCart", new { id = 101 }, null)
//also tried,
@Html.ActionLink("102829", "AddToCart", "ShoppingCart", new { id = 1, area = "OnlineShopping" },null)

在控制器中:

[HttpPost]
        public ActionResult AddToCart(int id)
        {
            _shoppingCart.Add(id, 1);
            return RedirectToAction("Index");
        }


    [Themed]  
    public ActionResult Index()
    {
        // Create a new shape using the "New" property of IOrchardServices.
        var shape = _services.New.ShoppingCart();

        // Return a ShapeResult
        return new ShapeResult(this, shape);
    }

2 个答案:

答案 0 :(得分:8)

由于[HttpPost]而未调用操作方法,因此单击锚标记实际上会执行Get。因此,请尝试从[HttpPost]操作中删除AddToCart属性修饰。

    [HttpPost]//<--Remove this
    public ActionResult AddToCart(int id)
    {
        _shoppingCart.Add(id, 1);
        return RedirectToAction("Index");
    }

答案 1 :(得分:0)

ASP.NET MVC ActionLink and post method

上找到了这个
  

您不能使用ActionLink,因为它只是呈现锚标记。   您可以使用JQuery AJAX帖子,请参阅   http://docs.jquery.com/Ajax/jQuery.post或只是致电表单提交   有或没有JQuery(可能是非AJAX)的方法,也许在   任何控制的onclick事件都会让你感到高兴。