我的情景就在这里 好的我有一个多选列表框,我想要的是当我们选择多个记录时 并按下按钮,我应该在调用方法中选择项目列表 控制器。我的代码在下面
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 :(得分:0)
注意:列表框的第一个参数是您要发送给控制器的名称!因此,您应该使用此类代码:
@Html.ListBox("nopCommerceCategories", Model.nopCommerceCategories);
@* or this code :
@Html.ListBoxFor(model => model.nopCommerceCategories);
*@
然后当您使用以下签名呼叫控制器时:
public ActionResult SaveMapping(ImportProductModel ipm) {
// here you have access to ipm.nopCommerceCategories
}
此外,您必须使用要在一个表单中获取的数据封装所有代码! 如果您想要提交多个操作,请添加一个javascript代码,以便检索正确的操作以提交您的数据...
答案 1 :(得分:0)
你的表单里面只有一个提交按钮,你应该将你的列表框放在一个表单中,当表单被提交时,列表框的值和表单中的所有其他内容将被发送到表格指向