【问题标题】:HTTP POST, GET in MVC?HTTP POST,在 MVC 中获取?
【发布时间】:2012-10-26 17:36:40
【问题描述】:

在 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>

}

public actionresult Insert(models.Empoyees objs) 操作方法参数处的objs 对象显示空值。我的意思是Ename=NullDepartment=0Emailid=NullAddress=null

【问题讨论】:

    标签: asp.net-mvc-3


    【解决方案1】:

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

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

    【讨论】:

    • 我会检查并通知您
    【解决方案2】:

    替换这个

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

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

    这将解决您的问题。

    【讨论】:

    • 谢谢昆丹先生,是的,它正在工作,TextBox 和 TextBoxFor 的区别是什么
    • @Ssasidhar,找到this 帖子以了解它们之间的主要区别
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    • 2019-01-28
    • 2017-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多