System.InvalidCastException:'您不能转换对象类型 将“ System.Web.Mvc.MvcHtmlString”转换为“ System.IConvertible”。
该消息显示当我尝试运行代码时,请帮助
我的局部视图
@model IEnumerable<SistemaDeAdminCasosJuridicos_Presentacion.Models.TipoCaso>
<div class="row">
<div class="input-field col s12" id="cbo">
<label>Seleccionar tipo de Caso</label>
@{
List<SelectListItem> listItems = new List<SelectListItem>();
foreach (var item in Model)
{
listItems.Add(new SelectListItem
{
Text = @Html.DisplayFor(modelItem => item.Text).ToString(),
Value = @Html.DisplayFor(modelItem => item.Value).ToString(),
Selected = Convert.ToBoolean(Html.DisplayFor(modelItem => item.Selected))
});
}
Html.DropDownList("idTipoCaso", listItems, "Nombre");
}
</div>
</div>
我的jQuery
jQuery(document).ready(function () {
$(document).on('change', '#cbo', function () {
var idTipoCaso = $(this).val();
alert(idTipoCaso);
$.ajax({
url: "/Parametros/Tareas",
cache: false
}).done(function () {
$("#divtareas").append('@Html.Partial("../Parametros/Tareas", Model.'+idTipoCaso+')');
});
});
});
我的控制器
// GET: Parametros/Tareas
public ActionResult Tareas(int idTipoCaso)
{
return View(Data.Data.ObtenerListaTareas(idTipoCaso));
}
// GET: Parametros/TipoCasos
public ActionResult TipoCasos()
{
return View(Data.Data.ObtenerListaTipoCasos());
}
答案 0 :(得分:0)
替换
@{
List<SelectListItem> listItems = new List<SelectListItem>();
foreach (var item in Model)
{
listItems.Add(new SelectListItem
{
Text = @Html.DisplayFor(modelItem => item.Text).ToString(),
Value = @Html.DisplayFor(modelItem => item.Value).ToString(),
Selected = Convert.ToBoolean(Html.DisplayFor(modelItem => item.Selected))
});
}
Html.DropDownList("idTipoCaso", listItems, "Nombre");
}
具有:
@{
List<SelectListItem> listItems = new List<SelectListItem>();
foreach (var item in Model)
{
listItems.Add(new SelectListItem
{
Text = item.Text,
Value = item.Value,
Selected = item.Selected
});
}
}
@Html.DropDownList("idTipoCaso", listItems, "Nombre");
@Html.DisplayFor
返回代表HTML的MvcHtmlString
。这里不是您所需要的。对于SelectListItem.Text
,您只需要string
的{{1}}值。 item.Text
也是如此。 SelectListItem.Value
引发异常。 Convert.ToBoolean(Html.DisplayFor(modelItem => item.Selected))
方法尝试转换给定的ToBoolean
,由于它不是该方法所期望的,并且没有实现MvcHtmlString
,因此会引发异常。
您的div为空,因为IConvertible
返回Html.DropDownList("idTipoCaso", listItems, "Nombre");
无处。您必须将其直接放在html之外的@ {...}块之外。