当类实际标记为带注释的序列化时,未标记为序列化错误

时间:2011-09-01 13:51:53

标签: asp.net asp.net-mvc-2

我的控制器中有以下操作方法。我这里有一个多页面向导方案。现在,当我单击下一步时,我得到“....类型未标记为序列化”错误消息。我看过有关同一问题的帖子,但无法找到我的解决方案。

 public ActionResult startOpenJAccount()
                {
                        return View(vmJ);
                }

for this method the view is something like: 
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">


 <%using (Html.BeginForm("contReg")){ %>
    <%:Html.Serialize("vmJ", Model) %>

      <fieldset>
    <legend> Individual Personal Profile</legend>
       <table class="col1">

          <tr>
        <td><div class="display-label">Title</div></td>
        <td><div class="display-field"><%: Html.TextBoxFor(m=>m.newMember.title) %></div></td>
        </tr> 

            <tr> 
        <td><div class="display-label">First Name</div></td>
        <td><div class="display-field"><%: Html.TextBoxFor(m=>m.newMember.FirstName )%></div></td>
           </tr> <tr>
 </table> 

        <div class="command"><input type="submit" name="next" value="Next" /></div>
        <div class="command"><input type="submit" name="cancel" value="Cancel" /></div>
    <%}%>
 </fieldset>

此页面发布到以下操作方法:

 public ActionResult contReg(string next, string cancel)
        {
              if (next != null)
            {
                vmJ.members.Add(vmJ.newMember);   
                vmJ.newMember = new Individual();
                return RedirectToAction("displayRegInfo");
            }
            if (cancel != null)
                return RedirectToAction("displayRegInfo");
                return RedirectToAction("Index","default");
        }

单击“下一步”返回此错误。提到“未标记为可序列化”的类甚至不包括在目前涉及的对象中,而是稍后在同一控制器中使用。

我因此而陷入困境,请尽快帮助。

1 个答案:

答案 0 :(得分:0)

如果这是一个Entity Framework对象,那么你有两个问题

  1. 我不相信序列化(它继承自实体对象)
  2. 序列化可能会产生巨大的对象
  3. 使用POCO模板进行实体框架。在模板.tt代码中将您的类标记为可序列化,或通过名为与您的类相同的分部类包含[Serializable]