2013-04-10 19 views
1

我的方案是在這裏 OK,我有一個多選列表框,我想要的是,當我們選擇多條記錄 然後按下按鈕,我應該我已經呼籲 控制器的方法來選擇項目列表。我的代碼如下選送列表框中的項目到控制器

csthml代碼:

@{ 
Layout = ""; 
} 
@using Telerik.Web.Mvc.UI; 
@using System.Web; 
@using System.Web.UI.WebControls; 
@using System.Web.Mvc; 

@model Nop.Plugin.Import.Product.Models.ImportProductModel 
<div> 
<div class="section-header"> 
    <div class="options">    
    @using (Html.BeginForm("ImportSelected", "ImportProduct")) 
    { 
     <button type="submit">OK</button> 
    } 
    </div> 
</div> 

<table> 
    <tr> 
     <td> 
      @Html.ListBox("Items", Model.nopCommerceCategories); 
     </td> 

     <td> 
      @Html.ListBox("Items", Model.ClockCategories); 
     </td> 
    </tr> 
    <tr> 
     <td> 
       @using (Html.BeginForm("SaveMapping", "ImportProduct")) 
       { 
        <button type="submit">Save</button> 
       } 
     </td> 
    </tr> 
    </table>   
</div> 

型號:

using System.Collections.Generic; 
using System.Web.Mvc; 
using Nop.Core.Domain.Catalog; 

namespace Nop.Plugin.Import.Product.Models 
{ 
    public class ImportProductModel 
    {   
     public List<SelectListItem> nopCommerceCategories { get; set; } 
     public List<SelectListItem> ClockCategories { get; set; } 
    } 
} 

回答

0

注意:在列表框中的第一個參數是要發送到的名字你控制器!因此,你應該使用這樣的代碼:

public ActionResult SaveMapping(ImportProductModel ipm) { 
    // here you have access to ipm.nopCommerceCategories 
} 

而且你必須封裝與數據所有的代碼,你想在:

@Html.ListBox("nopCommerceCategories", Model.nopCommerceCategories); 
@* or this code : 
@Html.ListBoxFor(model => model.nopCommerceCategories); 
*@ 

然後當你具有以下簽名打電話給你的控制器一種形式! 如果你希望提交一個以上的動作,以獲取正確的行動來提交您的數據添加JavaScript代碼...

0

您的形式已經只是一個內部的提交按鈕,你應該把你的列表框裏面一個表單,並且當表單將被submited時,listbox的值和表單內的所有其他內容將被髮送到表單指向的動作

相關問題