将数据从视图传递到控制器MVC3



我最近看到了ASP.Net上的MVC教程。我试图创建一个类似的项目(MVC3剃刀),在那里你可以注册详细信息。但是,当我单击提交按钮时,参数User中所有属性的值始终为空。我不能弄清楚为什么数据没有从视图传递到控制器。

即使在教程中的创建。他们只使用提交按钮作为

<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);
        }

在本教程中,当我提交时,我在参数movie中获得表单数据。然而,在我的样本项目中,我得到它为空。我是MVC的新手,如果你能帮我解决这个问题,那就太好了。下面是我的代码

登记。cshtml -在创建这个视图时,我选择了"创建强类型视图"选项,并且脚手架模板选项为"Empty"

@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>
}

RegisterController.cs

public class RegisterController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }
        public ActionResult Register()
        {
            return View();
        } 
        [HttpPost]
        public ActionResult Register(User user)
        {
            return RedirectToAction("Index");  
        }
    }

User.cs

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

按如下方式更改User类。你错过了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>

谢谢!

最新更新