2013-12-19 74 views
1

使用引导程序在我的MVC 4应用程序中创建登录视图。 它的工作,但我的继承人登录视图:替换为Html.BeginForm()

@using (Html.BeginForm()) 
{ 
    <link href="~/Content/dist/css/signin.css" rel="stylesheet"> 
    <div class="container"> 
     <form class="form-signin" role="form"> 
      <h2 class="form-signin-heading">Entrar</h2> 
      <input type="text" id="User" name="UserName" class="form-control" placeholder="Usuário" required /> 
      <input type="password" id="Pass" name="Password" class="form-control" placeholder="Senha" required> 
      <button class="btn btn-lg btn-primary btn-block" type="submit">Entrar</button> 
     </form> 
    </div> 
} 

但CSS的引用是'link href="~/Content/dist/css/signin.css" rel="stylesheet'线,但如果我删除@Html.BeginForm(),但我不能让我的动作它只能被解雇时,我做了一个HttpPost

如何在没有Html.BeginForm()的情况下拨打我的电话号码?

+1

为什么不把这个'link'元素放到表单之外。无论如何,你最好把它放在'head'里面。 – Kenneth

+0

@Kenneth我试图把链接元素放在窗体外面,但是我得到了框和按钮大小的改变。我需要一些方法来提交按钮知道它按下时去哪里。 Withoud BeginForm方法。 BeginForm改变了窗体和按钮的大小。 – gog

+1

这与链接元素的位置无关。原因可能是您的CSS在元素处于表单时为其定义了样式(因为您在使用引导时就是这种情况)。你应该修改你的css,以便它不这样做。如果没有表单,您无法发布表单。 – Kenneth

回答

3

我现在可以看到你正在使用的内部海誓山盟两种形式。你应该删除bootstrap,并确保BeginForm发出正确的表单:

<link href="~/Content/dist/css/signin.css" rel="stylesheet"> 
    <div class="container"> 
     @using (Html.BeginForm("your-action", "your-controller", 
           FormMethod.Post, 
           new { @class="form-signin", role = "form})) 
     { 
      <h2 class="form-signin-heading">Entrar</h2> 
      <input type="text" id="User" name="UserName" class="form-control" placeholder="Usuário" required /> 
      <input type="password" id="Pass" name="Password" class="form-control" placeholder="Senha" required> 
      <button class="btn btn-lg btn-primary btn-block" type="submit">Entrar</button> 
     } 
    </div> 
+0

谢谢,这就解决了我的问题。 – gog

+0

我也是。我有完全相同的两种形式的情况。 –

1

移动你的链接作为注释到<head>表示,但解决href值是这样的:

<link href="@Url.Content("~/Content/dist/css/signin.css")" rel="stylesheet" type="text/css" /> 
+0

对不起,它不起作用,BeginForm会覆盖引导程序窗体class =“form-signin”role =“form” – gog