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

时间:2014-07-01 09:04:05

标签: asp.net-mvc-3

我最近在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的新手,如果你能帮我解决这个问题会很棒。请在下面找到我的代码。

Register.cshtml - 在创建此视图时,我选择了&#34;创建强类型视图&#34;选项和脚手架模板选项为&#34;清空&#34;

@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上的示例电影项目

1 个答案:

答案 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>

谢谢!