当我调试我的程序时,“欢迎”操作在括号中的用户都是空值。有人可以帮帮我吗?
这是视图
@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);
}
}
}
答案 0 :(得分:0)
您正在为您的视图提供模型,但您并未“使用它”。换句话说,您的输入元素没有“name”属性。
我建议使用HtmlHelper方法,例如:
@Html.TextBoxFor(m => m.Username, new {@class = "form-control"})
或添加“name”属性,与您的模型属性名称相匹配。
答案 1 :(得分:0)
除了安德烈的回答,只是为了让您了解name
属性的含义......
如果您的User
类包含名为UserName
和Password
的属性,那么您需要在视图中执行以下操作:
@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>
}
因此,当您点击提交时,正在传递正确的值。
如果有帮助,请告诉我。