2012-03-29 12 views
4

私はparam1とparam2の両方を私のコントローラにどのように渡すのですか?これを試しましたが、param1だけが渡されます。ajax beginFormは経路の値とボタンの値を渡します

@using (Ajax.BeginForm("Index", "Controller", new { param1 = 0 }, new AjaxOptions { UpdateTargetId = "Target", InsertionMode = InsertionMode.Replace, OnFailure = "error" })) 
       { 
        <input type="submit" name="param2" value="1" /> 
    //more buttons 
       } 


    public ActionResult Index(int param1, int param2) 
      { 
       //do something 
      } 

答えて

11
@using (Ajax.BeginForm("Index", "Controller", new { param1 = 0 }, new AjaxOptions { UpdateTargetId = "Target", InsertionMode = InsertionMode.Replace, OnFailure = "error" })) 
      { 
       <input type="submit" name="param2" id="param2" value="1" /> 
//more buttons 
      } 


public ActionResult Index(String param1, String param2) 
     { 
      //do something 
     } 

を試してみてください、それが動作していません?このようなのparamsを設定するには

+2

Ahh ..私は隠しフィールドの使用を避けたかったのですが、とにかくこれがやってくれます! – formatc

+2

このコードは私のプロジェクトで動作しています。 –

+0

はい、動作しますが、ページに追加のHTMLを追加せずに解決策を望んでいました。 – formatc

0

この

@using (Ajax.BeginForm("Index", "Controller", new { param1 = 0 **,param2=1** }, new AjaxOptions { UpdateTargetId = "Target", InsertionMode = InsertionMode.Replace, OnFailure = "error" })) 
{ 
    <input type="submit" name="param2" value="1" /> 
    //more buttons 
} 

public ActionResult Index(int param1, int param2) 
{ 
    //do something 
} 
+1

PARAM2がボタンに依存して動的な値であり、押された – formatc

3

@using (Ajax.BeginForm("Index", "myController", new { param1 = 0, param2 = 1 }, new AjaxOptions { UpdateTargetId = "Target", InsertionMode = InsertionMode.Replace, OnFailure = "error" })) 
     { 
      <input type="submit" /> 
      //more buttons 
     } 


    public ActionResult Index(String param1, String param2) 
    { 
     //do something 
    } 

`デフォルトの」mapRoute前RouteConfig.scの相対的なルートをマップする必要があります:

routes.MapRoute(
      name: "routeName", 
      url: "myController/Index/{param1}/{param2}", 
      defaults: new { controller = "myController", action = "Index", param1 = UrlParameter.Optional, param2 = UrlParameter.Optional } 
     ); 
関連する問題