我有一段似乎有效的代码,但下拉菜单中的Request变量根本没有。
这是我的一段代码:
@using (Html.BeginForm("Search", "Search"))
{
<tr>
<td style="padding: 5px; vertical-align: top">
@Html.LabelFor(x => x.City, "Postort:")
</td>
<td style="padding: 5px; vertical-align: top">
@Html.TextBoxFor(x => x.City)
</td>
<td style="padding: 5px; vertical-align: top">
@Html.LabelFor(x => x.CMC, "CMC:")
</td>
<td style="padding: 5px; vertical-align: top">
<div class="demo-section k-content">
@(Html.Kendo().MultiSelectFor(x => x.CMC)
.BindTo(new SelectList(ViewBag.CMC, "UnitId", "Name"))
.Filter(FilterType.Contains)
.Placeholder("Välj ett eller flera CMC...")
)
</div>
</td>
<td style="padding: 5px">
Visa inte matchade:<br/>
Exakt matchning:<br/>
Endast Aktiva:
</td>
<td style="padding: 5px">
@Html.CheckBoxFor(x => x.OnlyUnmatched )<br/>
@Html.CheckBoxFor(x => x.ExactMatch)<br />
@Html.CheckBoxFor(x => x.OnlyActive )<br />
</td>
</tr>
<tr>
<td colspan="6" style="text-align: center">
<input type="Submit" text="Sök" value="Sök" name="Sök"/>
</td>
</tr>
}
其他所有内容都没有问题。我的模型连接是:
@model ABRsite.Models.SearchABR
但那不重要,因为当我调试时,我总是对CMC感到不满。 SearchABR包含一个List,但没有骰子。请求没有回来。
我做了几处更改,其中包括初始化模型对象内的列表。 所以,按时间顺序,它现在看起来像这样:
控制器:
public ActionResult Search()
{
SearchABR searchModel = new SearchABR
{
CMC = new List<CMCEntity>()
};
return View(searchModel);
}
HTML:
<div class="demo-section k-content">
@(Html.Kendo().MultiSelectFor(x => x.CMC)
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetCMC", "Search");
})
.ServerFiltering(true);
})
.ValuePrimitive(true)
.DataTextField("Name")
.DataValueField("UnitId")
.Filter(FilterType.Contains)
.Placeholder("Välj ett eller flera CMC...")
)
</div>
返回控制器以获取列表:
public JsonResult GetCMC([DataSourceRequest] DataSourceRequest request)
{
RetreiveInformation ri = new RetreiveInformation();
List<CMCEntity> lce = ri.FetchCMCInformation();
return Json(lce, JsonRequestBehavior.AllowGet);
}
CMCEntity看起来像这样:
public class CMCEntity
{
public string Name { get; set; }
public int UnitID { get; set; }
}
SearchABR(部分)看起来像这样:
public class SearchABR
{
public List<CMCEntity> CMC { get; set; }
public bool OnlyUnmatched { get; set; }
public bool ExactMatch { get; set; }
}
仍然无法提交。
答案 0 :(得分:0)
我的问题与MultiSelect或MVC编码无关。实际问题是
@using(Html.BeginForm...
你可以看到这个标签位于一个非法的表格内。 因此,当我将表格开始之外的使用开始移动到表格末尾之外时,它的工作结束了。