我的提交按钮是';t向控制器发送任何信息
本文关键字:控制器 信息 任何 按钮 提交 我的 | 更新日期: 2023-09-27 17:58:05
当我调试程序时,括号中的操作"Welcome"得到的用户都是null。有人能帮帮我吗?
这是视图
@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);
}
}
}
您正在为视图提供一个模型,但您并没有"使用它"。换句话说,您的输入元素没有"name"属性。
我建议使用HtmlHelper方法,如:
@Html.TextBoxFor(m => m.Username, new {@class = "form-control"})
或者添加"name"属性,与模型属性的名称相匹配。
除了Andre的答案之外,只想让您了解放置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>
}
这样,当您点击提交时,正确的值就会被传递出去。
如果这有帮助,请告诉我。