我正在使用此下拉列表的编辑器模板与相同属性名称
的ViewBag / ViewData@model System.String
@*
For Using this Editor Template
- There should be a viewbag/viewdata (type SelectList) of same name as of calling Model's Property
*@
@{
var modelMetadata = ViewData.ModelMetadata;
// Get property name of the model
var propertyname = modelMetadata.PropertyName;
}
@if (ViewData[propertyname] == null)
{
@Html.DropDownList(propertyname , Enumerable.Empty<SelectListItem>(), "--Select--", new { @class = "form-control" })
}
else
{
@Html.DropDownList(propertyname , null, "--Select--", new { @class = "form-control" })
}
现在用它作为
@Html.EditorFor(i=>i.Country,"CustomDropDown")
我还有一个ViewBag.Country作为国家的SelectList。
一切正常,但现在控制的命名变为
<select class="form-control" id="Country_Country" name="Country.Country">
如何从ID和名称中删除其他Country
?
其他信息:
我本来可以使用@Html.DropDownList("Country")
,但它不允许我将css类添加到控件中。
答案 0 :(得分:0)
我想我找到了解决方案。
我将DropDownList更改为DropDownListFor并进行了一些更改
@if (ViewData[propertyname] == null)
{
@Html.DropDownListFor(m=>m, Enumerable.Empty<SelectListItem>(), "--Select--", new { @class = "form-control" })
}
else
{
@Html.DropDownListFor(m => m, ViewData[propertyname] as SelectList, "--Select--", new { @class = "form-control" })
}
这种自动ViewData绑定有时令人困惑。 &GT; _&LT;