【发布时间】:2014-07-02 17:28:17
【问题描述】:
我最近在ASP.Net 上看到了 MVC 教程。我试图创建一个类似的项目(MVC3 Razor),您可以在其中注册详细信息。但是,当我单击提交按钮时,参数 User 中所有属性的值始终为空。我无法弄清楚为什么数据没有从视图传递到控制器。
即使在 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);
}
在本教程中,当我提交时,我在参数电影中获取表单数据。但是,在我的示例项目中,我将其设为空。我是 MVC 的新手,如果你能帮我解决这个问题,那就太好了。请在下面找到我的代码。
Register.cshtml - 创建此视图时,我选择了“创建强类型视图”选项,并将脚手架模板选项选择为“空”
@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");
}
}
用户.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 获得
【问题讨论】:
-
你面临的问题是什么?
-
使用@Html.TextBoxFor() 代替@Html.EditorFor()...
-
@kartikeya-khosla :我尝试使用 @Html.TextBoxFor() 它仍然无法正常工作。问题是,如果我在表单中输入详细信息并提交,这些详细信息不会传递给方法 Register(User user) 并且“user”的所有值都是 null。
-
你的代码是正确的,肯定有其他问题...
-
@kartikeya-khosla :我在filedropper.com/mvcregister(我的项目)和filedropper.com/mvcmovie(示例项目)上传了代码
标签: asp.net-mvc-3