0

在 MVC3 中,我创建了一个注册表单。我创建了一个模型、控制器和视图。这是我的代码:

   [HttpGet]
    public ActionResult Insert()
    {
        Models.Employees objEmpl = new Models.Employees();
        return View(objEmpl);
    }

    [HttpPost]
    [AcceptVerbs("Post")]
    public ActionResult Insert(Models.Employees objs)
    {
        var v = new Models.test().InsertDl(objs);
        return View();
    }
  The above is my controller

   @model MvcVideo.Models.Employees
 @{
   ViewBag.Title = "Insert";
    Layout = "~/Views/Shared/VideoLayout.cshtml";
  }
<h2>Insert</h2>
 @using(Html.BeginForm("Insert","Home",FormMethod.Post ))
 {
  <table>
 <tr>
   <td>
      Employee Name
   </td>
   <td>
     @Html.TextBox("Ename",@Model.Enames)
   </td>
 </tr>
 <tr>
   <td>
     Department Id
   </td>
   <td>
     @Html.TextBox("Departmentid",@Model.DepartId )
   </td>
 </tr>
 <tr>
   <td>
      Email Id
   </td>
   <td>
      @Html.TextBox("Emailid",@Model.EmailIds) 
   </td>
 </tr>
  <tr>
    <td>
      Address
    </td>
    <td>
       @Html.TextBox("Address",@Model.Adress)
    </td>
  </tr>
  <tr>
    <td colspan="2" style="text-align:center;" >          
    <button  title ="Ok"   value="OK"></button>   
    </td>
  </tr>
</table>

}

但是action 方法参数objs处的对象public actionresult Insert(models.Empoyees objs)显示空值。意思是Ename=Null,和Department=0Emailid=NullAddress=null

4

2 回答 2

2

它不起作用,因为您在 Html 帮助程序中提供的名称与模型上的属性名称不匹配,因此当值被回发时,默认模型绑定器无法解析它们。

使用 Html.TextBoxFor 而不是 Html.TextBox 将为您提供针对您的模型的强类型,并且是更安全的方法。

于 2012-10-26T17:47:21.267 回答
1

替换这个

@Html.TextBox("Ename",@Model.Enames)

@Html.TextBoxFor(model => model.Enames)

这将解决您的问题。

于 2012-10-26T17:40:13.257 回答