MVC Bootstrap形成样式问题

Ini*_*ton 4 asp.net-mvc-4 twitter-bootstrap

我的bootstrap mvc表单有一个小问题.当我添加我的剃刀时,表单组的边距似乎不起作用.任何帮助将不胜感激.

在此输入图像描述

这种形式不能正确地进行样式化

 @using (Html.BeginForm("Contact", "Home"))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<form class="form-horizontal" role="form">
    <div class="form-group">
        <label for="formGroupInputLarge1" class="col-sm-2 control-label">Name</label>
        <div class="col-sm-10">
            @Html.TextBoxFor(m => m.Name, new { @class = "form-control", placeholder = "Fullname", tabindex = 1 })
            @Html.ValidationMessageFor(m => m.Name)
        </div>
    </div>
    <div class="form-group">
        <label for="formGroupInputLarge2" class="col-sm-2 control-label">Email</label>
        <div class="col-sm-10">
            @Html.TextBoxFor(m => m.Email, new { @class = "form-control", placeholder = "Email Address", tabindex = 2 })
            @Html.ValidationMessageFor(m => m.Email)
        </div>
    </div>
    <div class="form-group">
        <label for="formGroupInputLarge3" class="col-sm-2 control-label">Message</label>
        <div class="col-sm-10">
            @Html.TextAreaFor(m => m.Message, new { @class = "form-control", placeholder = "Message", tabindex = 3 })
            @Html.ValidationMessageFor(m => m.Message)
        </div>
    </div>
    <div class="form-group">
        <div class="col-sm-offset-2 col-sm-10">
            <button type="submit" class="btn btn-primary btn-lg">Send Mail</button>
        </div>
    </div>
</form>
}
Run Code Online (Sandbox Code Playgroud)

但是一旦我删除了Begin表单,它就会采用正确的样式

<form class="form-horizontal" role="form">
    <div class="form-group">
        <label for="formGroupInputLarge1" class="col-sm-2 control-label">Name</label>
        <div class="col-sm-10">
            @Html.TextBoxFor(m => m.Name, new { @class = "form-control", placeholder = "Fullname", tabindex = 1 })
            @Html.ValidationMessageFor(m => m.Name)
        </div>
    </div>
    <div class="form-group">
        <label for="formGroupInputLarge2" class="col-sm-2 control-label">Email</label>
        <div class="col-sm-10">
            @Html.TextBoxFor(m => m.Email, new { @class = "form-control", placeholder = "Email Address", tabindex = 2 })
            @Html.ValidationMessageFor(m => m.Email)
        </div>
    </div>
    <div class="form-group">
        <label for="formGroupInputLarge3" class="col-sm-2 control-label">Message</label>
        <div class="col-sm-10">
            @Html.TextAreaFor(m => m.Message, new { @class = "form-control", placeholder = "Message", tabindex = 3 })
            @Html.ValidationMessageFor(m => m.Message)
        </div>
    </div>
    <div class="form-group">
        <div class="col-sm-offset-2 col-sm-10">
            <button type="submit" class="btn btn-primary btn-lg">Send Mail</button>
        </div>
    </div>
</form>
Run Code Online (Sandbox Code Playgroud)

小智 9

您创建的嵌套表单(表单中的表单)无效且不受支持.更改

@using (Html.BeginForm("Contact", "Home"))
Run Code Online (Sandbox Code Playgroud)

@using (Html.BeginForm("Contact", "Home", FormMethod.Post, new { @class="form-horizontal", role="form" }))
Run Code Online (Sandbox Code Playgroud)

并删除第二个表单元素(及其结束标记)

<form class="form-horizontal" role="form">
Run Code Online (Sandbox Code Playgroud)

作为旁注,<label for="formGroupInputLarge1" ...>不是创建正确的label元素,因为该for属性与表单中的任何元素没有关系.而是使用@Html.LabelFor(m => m.Name, new { @class = "col-sm-2 control-label" })将标签与文本框相关联.