如何为不在模型中的字段创建输入(编辑器)
本文关键字:创建 字段 输入 编辑器 模型 | 更新日期: 2023-09-27 17:56:49
>我的编辑视图上有以下内容
@model Inspinia_MVC5.Areas.GlobalAdmin.Models.Empresa
@{
ViewBag.Title = "Edit";
Layout = "~/Areas/GlobalAdmin/Views/Shared/_LayoutGlobalAdmin.cshtml";
var camposAdicionalesEmpresa = (List<Inspinia_MVC5.Areas.GlobalAdmin.Models.Propiedad>)ViewData["CamposAdicionalesEmpresa"];
var valoresCampoAdicionalesEmpresa = (Dictionary<string, string>)ViewData["ValoresCampoAdicionalesEmpresa"];
}
我的控制器是这样的:
public ActionResult Edit(int? id)
{
var listFields = from b in db.Propiedades
where b.Entidad.Nombre == "Empresa"
select b;
ViewData["CamposAdicionalesEmpresa"] = listFields.ToList<Propiedad>();
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Empresa empresa = db.Empresas.Find(id);
if (empresa.PropiedadesExtra != null)
{
XElement xmlTree = XElement.Parse(empresa.PropiedadesExtra);
Dictionary<string, string> dict = new Dictionary<string, string>();
foreach (var el in xmlTree.Elements())
{
dict.Add(el.Name.LocalName, el.Value);
}
ViewData["ValoresCampoAdicionalesEmpresa"] = dict;
}
if (empresa == null)
{
return HttpNotFound();
}
return View(empresa);
}
ViewData["ValoresCampoAdicionalesEmpresa"]
是一个带有键值的字典,我需要在输入表单中显示该值。
在我的剃刀视图上,我有这个
@if (valoresCampoAdicionalesEmpresa != null)
{
<div class="panel panel-default">
<div class="panel-heading">Propiedades adicionales</div>
<div class="panel-body">
@foreach (Inspinia_MVC5.Areas.GlobalAdmin.Models.Propiedad propiedad in camposAdicionalesEmpresa)
{
if (propiedad.TipoDeDatos == "Texto")
{
var valor = valoresCampoAdicionalesEmpresa.Where(p => p.Key == propiedad.Nombre).First().Value;
<div class="form-group">
@Html.Label(propiedad.Nombre, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.Editor(valor)
@*@Html.ValidationMessageFor(prop => propiedad.)*@
</div>
</div>
}
}
</div>
</div>
}
如果我调试,valor 变量设置正确,但是在用户界面上,文本框为空。
我怎样才能做到这一点?
如果您没有特别的理由使用编辑器,则@Html.Editor(valor)
替换为
@Html.TextBox("TextBoxName",valor)