我的提交按钮没有向控制器发送任何内容

时间:2016-07-21 10:21:20

标签: c# asp.net-mvc razor

当我调试我的程序时,“欢迎”操作在括号中的用户都是空值。有人可以帮帮我吗?

这是视图

@using LessIsMore.Models
@model User

@{
ViewBag.Title = "Welcome";
}
<h2>Welcome</h2>

@using (Html.BeginForm("Welcome","Welcome",FormMethod.Post)) { 

<div class="form-group">
    <label for="txtUserName">UserName: </label>
    <input type="text" id="txtUserName" class="form-control" placeholder="UserName" />
</div>
<div class="form-group">
    <label for="txtPassWord">PassWord: </label>
    <input type="password" id="txtPassWord" class="form-control" placeholder="PassWord" />
</div>     
  <button type="submit" id="btnsubmit" class="btn btn-default">Submit</button>

}

这是控制器

namespace LessIsMore.Controllers
{
public class WelcomeController : Controller
 {
   [HttpGet]
    public ActionResult Welcome()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Welcome(User u)
    {    
        //Some code here
        return View(u);
    }
 }
}

2 个答案:

答案 0 :(得分:0)

您正在为您的视图提供模型,但您并未“使用它”。换句话说,您的输入元素没有“name”属性。

我建议使用HtmlHelper方法,例如:

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

或添加“name”属性,与您的模型属性名称相匹配。

答案 1 :(得分:0)

除了安德烈的回答,只是为了让您了解name属性的含义......

如果您的User类包含名为UserNamePassword的属性,那么您需要在视图中执行以下操作:

@using LessIsMore.Models
@model User

@{
ViewBag.Title = "Welcome";
}
<h2>Welcome</h2>

@using (Html.BeginForm("Welcome","Welcome",FormMethod.Post)) { 

<div class="form-group">
    <label for="txtUserName">UserName: </label>
    <input type="text" id="txtUserName" name="UserName" class="form-control" placeholder="UserName" />
</div>
<div class="form-group">
    <label for="txtPassWord">PassWord: </label>
    <input type="password" id="txtPassWord" name="Password" class="form-control" placeholder="PassWord" />
</div>     
  <button type="submit" id="btnsubmit" class="btn btn-default">Submit</button>

}

因此,当您点击提交时,正在传递正确的值。

如果有帮助,请告诉我。