none
asp.net mvc中 hiddenfor 和 displayfor同一个对象的id时,生成的html中的值不相同 RRS feed

  • 问题

  • ASP.NET MVC中,hiddenfor 和 displayfor 页面模型的ID时,最终生成的HTML里面的ID值不同,hiddenfor生成的值是我传入Viewbag中的值,而不是模型ID的值。

    我的MVC版本为 5.2.2

    MVC 中的代码如下

    @Html.HiddenFor(model => model.Id)
    @Html.DisplayFor(model => model.Id)

    生成的HTML如下:

     <input data-val="true" data-val-required="Id 字段是必需的。" id="Id" name="Id" type="hidden" value="1b25c676-06af-4b95-925d-a9a68c06182a" />
    
     00000000-0000-0000-0000-000000000000

    HiddenFor生成的HTML中的值是Viewbag中的一个对象的ID值,而不是model的Id值,displayfor方法正确显示出了model.Id的真实值




    • 已编辑 Haolu 2014年11月6日 7:40
    2014年11月6日 7:31

答案

  • 你好,

    在你的代码中,我看不出来你是将viewbag 中的值传入到hiddenfor中的。

    在 HiddenFor(model=>model.Id)中,显示的值也应该是Id的真实值。

    我建议您,先不要将ViewBag的值传入到你的hiddenfor中,去查看网页的源码。

    2014年11月7日 4:59