MVC为什么我的TextBoxFor不显示文本框?

时间:2014-11-04 17:07:34

标签: c# asp.net-mvc

这应该是真的很简单,但我不知道为什么会这样?我有一块我的ViewModel:

public string ErrorMessage { get; set; }

我有使用此模型字段的TextBoxFor。为什么不显示文本框?目前还没有任何价值,但为什么不显示用户输入的文本框?我得到了标签。

 <div class="row">
            @Html.LabelFor(m => m.ErrorMessage)
            @Html.TextBoxFor(m => m.ErrorMessage)
        </div>

控制器是:

 public ActionResult OptIn()
        {
            PrefCenterEntities db = new PrefCenterEntities();
            List<SelectListItem> listSelectListItems = new List<SelectListItem>();
            List<SelectListItem> listSelItems = new List<SelectListItem>();

            foreach (var attributes in db.HarmonyAttributes)
            {
                SelectListItem selectList = new SelectListItem
                {
                    Text = attributes.AttributeName,
                    Value = attributes.ID.ToString(),
                    Selected = false
                };
                listSelectListItems.Add(selectList);
            }

            foreach (var sel in db.SelectedHarmonyAttributes)
            {
                SelectListItem selList = new SelectListItem
                {
                    Text = sel.CustomLabel,
                    Value = sel.HarmonyAttribute_ID.ToString(),
                    Selected = false
                };
                listSelectListItems.Add(selList);
            }

            OptInViewModel viewModel = new OptInViewModel
            {
                Attributes = listSelectListItems,
                SelectedItems = listSelItems
            };

            return View(viewModel);
        }

错误消息的生成代码就在那里!

<div class="row">
            <label for="ErrorMessage">Error Message:</label>
            <input id="ErrorMessage" name="ErrorMessage" type="text" value="" />
        </div>

这不适用于我之前应用于TextAreaFor的CSS规则,以便让它显示出来吗?

 <p>Item Caption Text (140 Characters. HTML not allowed.)</p>
@Html.TextAreaFor(model => model.ItemCaptionText,10, 60, new { style="border-color: grey!important; border-width: 2px!important; border-style: solid;"})

1 个答案:

答案 0 :(得分:0)

就像评论一样,尝试取出父<div>,如下:

        @Html.LabelFor(m => m.ErrorMessage)
        @Html.TextBoxFor(m => m.ErrorMessage)

标签是否出现?如果这不起作用,你可以尝试这样的事情:

@Html.LabelFor(m => m.ErrorMessage)
@Html.TextBoxFor(m => m.ErrorMessage, new { style = "position:absolute;z-index:10000;width:300px;height:25px;" } )

只是覆盖可能隐藏文本框的任何样式