我的提交按钮是';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);
    }
 }
}

我的提交按钮是';t向控制器发送任何信息

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

我建议使用HtmlHelper方法,如:

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

或者添加"name"属性,与模型属性的名称相匹配。

除了Andre的答案之外,只想让您了解放置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>
}

这样,当您点击提交时,正确的值就会被传递出去。

如果这有帮助,请告诉我。