2013-08-23 39 views
1

由于某种原因我的控制器中的3个HttpPost函数没有被调用。我试图用不同的名字重新制作视图,但没有成功。他们都返回到索引视图,而不是运行HttpPost函数。控制器中的HttpPost函数没有被调用

控制器:

[HttpPost] 
public ActionResult OrderIsFinished(string PickUp, string DeliveryBigger, string DeliverySmaller) 
    { 
     string view = ""; 

     if (PickUp != null) 
     { 
      view = "OrderPickUp"; 
     } 

     if (DeliveryBigger != null) 
     { 
      view = "DeliveryBigger"; 
     } 

     if (DeliverySmaller != null) 
     { 
      view = "DeliverySmaller"; 
     } 

     return View(view); 
    } 

查看:

@{ 
    ViewBag.Title = "OrderIsFinished"; 
} 

@section shoppingcart { 
    <p>Shopping Cart</p> 
} 

<h2>OrderIsFinished</h2> 

@using (Html.BeginForm()) 
{ 
    <input type="submit" name="PickUp" value="Ik kom mijn bestelling afhalen" /> 
    <input type="submit" name="DeliveryBigger" value="Ik wil dat u mijn bestelling levert" /> 
    <input type="submit" name="DeliverySmaller" value="Ik wil dat u mijn bestelling levert" /> 
} 

当我把一个断点功能,我不存在,它只是返回索引视图。

回答

2

尽量含蓄一点的动作和控制器的名称

@using (Html.BeginForm("OrderIsFinished","ControllerName",FormMethod.Post)) 
{ 
    <input type="submit" name="PickUp" value="Ik kom mijn bestelling afhalen" /> 
    <input type="submit" name="DeliveryBigger" value="Ik wil dat u mijn bestelling levert" /> 
    <input type="submit" name="DeliverySmaller" value="Ik wil dat u mijn bestelling levert" /> 
} 
+0

谢谢。这个解决方案有效任何理由为什么有些意见没有这个和一些需要这个工作? –

+0

@NanouPonette它可能与您在发布方法中使用的参数有关。如果你有参数较少的post方法,它可能无需隐式指定方法,控制器和表单方法类型就可以工作。 – Cybercop

+0

嗯,好的。 Thx帮助。我会在将来留意这一点。 –