2011-06-27 177 views
0

我在表單中有幾個過濾器選項。我已經給出了行動方法。代碼如下所示。將參數傳遞給Action方法

<% using (Ajax.BeginForm 
     (new AjaxOptions { UpdateTargetId = "accountsGrid" })) 
     { %> 
<body style="overflow: scroll"> 
<%= Html.TextBox("subAccNumber",accId) %> 
<%= Html.TextBox("accountName", Name)%> 
<%= Html.TextBox("address", address)%> 
    <%} %> 

<%Html.RenderAction("SelectAccounts"); %> 

</body> 

public PartialViewResult SelectAccounts(string accId,string accountName,string address) 
     { 
      // Do some stuff 
        return PartialView(); 
} 

我可以克里特字典或所有的輸入參數(表單控件)的東西,並通過直接作用的方法?或者我必須爲每個控件添加單獨的參數?

+1

你應該接受一些前一個問題的回答獲得了良好的反響 – Tassadaque

回答

0

你有兩個選擇:

  1. 創建一個視圖模式(推薦的方法):

    public class AccountViewModel 
    { 
        public string SubAccNumber { get; set; } 
        public string AccountName { get; set; } 
        public string Address { get; set; } 
    } 
    

    ,有你的控制器動作接受這個視圖模型作爲參數:

    public PartialViewResult SelectAccounts(AccountViewModel account) { ... } 
    
  2. 您當前的實現將參數作爲操作參數傳遞

  3. 從請求提取參數:

    public ActionResult SelectAccounts() 
    { 
        var subAccNumber = Request["subAccNumber"]; 
        var accountName = Request["accountName"]; 
        var address = Request["address"]; 
        ... 
    }