none
asp.net mvc3 BeginForm出错 RRS feed

  • 问题

  • @using (Html.BeginForm())
    {
        <div>
        <table style="width:1000px">
            <tr>
                <td style=" width:70px">标 &nbsp 题:</td>
                <td>@Html.TextBoxFor(m => m.title, new { style = "width:904px; border-color:#BEEBF5" })</td>
             </tr>
            <tr><td>@Html.ValidationMessageFor(m => m.title)</td></tr>
            <tr>
                <td style=" width:70px">内 &nbsp 容:</td>
                <td>@Html.TextAreaFor(m => m.contents, new { rows = "10", cols = "113", style = "overflow-y:hidden; border-color:#BEEBF5" })/td>
            </tr>
            <tr><td>@Html.ValidationMessageFor(m => m.contents)</td></tr>
            <tr>
                <td><input type="submit" value="提交") /></td>
            </tr>
        </table>
        </div>
    }

    为什么提交上去后变成空的,但如果不用强类型提交上去不是空的。而且如果从control返回model却能正常在文本框中显示。

    2012年1月23日 10:56

答案

全部回复

  • 这样默认是哪个Controller处理此视图,此视图就提交到该Controller里对应的同名Action

    我觉得您应该最好写清楚此表单要提交给哪个Controller和Action处理,该ActionResult方法再加上[HttpPost]属性

    这样您才知道要在哪个方法处理此表单

    ex.

     @using(Html.BeginForm("Index","Home",FormMethod.Post)){
     
     
     }

     

    HomeController.cs

            [HttpPost]
            public ActionResult Index()
            {

                return View();
            }

     

     

     

     

     


    2012年1月23日 12:20
  • 这些都有写好,并且可以用,如果不用强类型传数据都传得很好,但一用强类型的传过去就成空的。

    2012年1月23日 14:09
  • 那有试过在Controller用model实例接参数吗?

    ex.

            [HttpPost]
            public ActionResult Index(MyTable model)
            {
     
                 return View();
            }


    2012年1月23日 14:33
  • 有,我发现我那里都没错,是我的模型写错了,谢谢啦。

    2012年1月23日 14:46