加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

twitter-bootstrap-3 – MVC5和Bootstrap3:Html.EditorFor错误

发布时间:2020-12-18 00:16:45 所属栏目:安全 来源:网络整理
导读:我刚刚注意到,使用EditorFor时,MVC 5正在为输入字段使用不同的类.我认为它是从较低版本的bootstrap,所以目前的类并没有真的加起来. 我在说这个: div class="form-group" @Html.LabelFor(model = model.Contact.CellphoneNo,new { @class = "control-label c
我刚刚注意到,使用EditorFor时,MVC 5正在为输入字段使用不同的类.我认为它是从较低版本的bootstrap,所以目前的类并没有真的加起来.

我在说这个:

<div class="form-group">
    @Html.LabelFor(model => model.Contact.CellphoneNo,new { @class = "control-label col-md-4"})
       <div class="col-md-8">
           @Html.EditorFor(model => model.Contact.CellphoneNo)
           @Html.ValidationMessageFor(model => model.Contact.CellphoneNo)
       </div>
</div>

结果是这样的:

<div class="form-group">
    <label class="control-label col-md-4" for="Contact_CellphoneNo">CellphoneNo</label>
    <div class="col-md-8">
        <input class="text-box single-line" id="Contact_CellphoneNo" name="Contact.CellphoneNo" type="text" value="">
        <span class="field-validation-valid" data-valmsg-for="Contact.CellphoneNo" data-valmsg-replace="true"></span>
    </div>
</div>

当你看标签时,它有一个“文本框”类而不是Bootstrap3的“form-control”

我想我在某处找到这是由于MVC5在最后一分钟切换到Bootstrap 3的事实.

问题是:如何手动更改该类?我想要将文本框更改为表单控件.我真的找不到代码.

我也试过了

@Html.EditorFor(model => model.CivilStatus,new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.CivilStatus)

哪个似乎不起作用我被困了有任何想法吗?

提前致谢!

解决方法

EditorFor不接受HTML属性作为参数.您使用的参数实际上是additionalViewData

使用TextBoxFor代替

@Html.TextBoxFor(m => m.UserName,new { @class = "form-control" })

编辑

从MVC 5.1开始,HTML属性可以使用这种语法传递给EditorTemplate

@Html.EditorFor(m => m.UserName,new { htmlAttributes = new { @class = "form-control" } })

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读