我最近在ASP.Net上看到了MVC教程。我正在尝试创建一个类似的项目(MVC3 Razor),您可以在其中注册详细信息。但是,当我单击提交按钮时,参数User中所有属性的值始终为null。我无法弄清楚为什么数据没有从视图传递到控制器。
即使在Create.cshtml的教程中,他们只需使用“提交”按钮作为
<input type="submit" value="Create" />
和MoviesController.cs中的Create Action中的代码如下
[HttpPost]
public ActionResult Create(Movie movie)
{
if (ModelState.IsValid)
{
db.Movies.Add(movie);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(movie);
}
在本教程中,当我提交时,我在参数影片中获取表单数据。但是,在我的示例项目中,我将其视为null。我是MVC的新手,如果你能帮我解决这个问题会很棒。请在下面找到我的代码。
@model MvcRegister.Models.User
@using (Html.BeginForm())
{
<div>
<div>Name</div><div>@Html.EditorFor(model => model.Name)</div>
<div>Email</div><div>@Html.EditorFor(model => model.Email)</div>
<div>Phone</div><div>@Html.EditorFor(model => model.Phone)</div>
<div><input type="submit" value="Register" /></div>
</div>
}
public class RegisterController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult Register()
{
return View();
}
[HttpPost]
public ActionResult Register(User user)
{
return RedirectToAction("Index");
}
}
public class User
{
[Required]
public string Name;
[Required]
public string Email;
[Required]
public string Phone;
}
我的项目http://www.filedropper.com/mvcregister提供的源代码和http://www.filedropper.com/mvcmovie上的示例电影项目
答案 0 :(得分:1)
更改您的用户类,如下所示。你错过了getter和setter。
public class User
{
[Required]
public string Name { get; set; }
[Required]
public string Email { get; set; }
[Required]
public string Phone { get; set; }
public string IP { get; set; }
public string Password { get; set; }
}
此外,您还需要添加以下java脚本以进行验证工作。
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
谢谢!