0
我在我的应用程序中创建一个简单的搜索功能,我想使用KendoUI MultiSelect。我需要将参数传递给控制器,但它只会通过第一个选择,而不是全部。我怎样才能将多个参数传递给我的控制器?或者我的方法对这种类型的东西不正确?如何将多个参数传递给控制器?
这是我的代码。
的观点:
@using (Html.BeginForm())
{
@(Html.Kendo().MultiSelect()
.Name("vessel_type")
.Placeholder("-- Type --")
.AutoBind(false)
.BindTo(new List<string>() {
"AHTS",
"PSV",
"Tug"
}))
<input type="submit" value="Search" />
}
我的控制器:
public ActionResult Index(string vessel_type)
{
var thevessels = from o in db.tbl_vessels
select o;
if (!String.IsNullOrEmpty(vessel_type))
{
thevessels = thevessels.Where(x =>
x.vessel_type.Contains(vessel_type));
}
return View(thecvessels);
}
正如你看到的,我接受来自vessel_type绳子,但我需要的用户选择它拿一样多能不止一个。有任何想法吗?
非常感谢
你有没有想过传递一个数组/参数的数组并根据其长度解析数组中的值?这样你至少只能传递一个项目 – Thom
首先,你的表单方法默认为'POST',所以你的控制器Action需要'[HttpPost]'属性,否则你需要改变你的'FormAction'到'GET'。其次,既然你正在创建一个'List'绑定到视图,为什么不接受控制器参数中的'List '? 'DefaultModelBinder'应该能够选择它,然后对传递给它的数据做些什么?你在使用强类型视图吗? –