не помечен как сериализованная ошибка, в то время как класс был фактически помечен как сериализованный с аннотациями - PullRequest
0 голосов
/ 01 сентября 2011

У меня есть следующие методы действия в моем контроллере. У меня есть сценарий многостраничного мастера здесь. Теперь, когда я нажимаю «Далее», я получаю сообщение об ошибке «.... тип не помечен как сериализованный». Я видел сообщения, связанные с той же проблемой, но не смог найти решение для моей.

 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 голосов
/ 01 сентября 2011

Если это объект Entity Framework, у вас есть две проблемы здесь

  1. Я не верю, что сериализуемый (он наследуется от объекта)
  2. Сериализация может привести к огромному объекту

Используйте шаблоны POCO для Entity Framework. Пометьте ваши классы как сериализуемые в коде шаблона .tt или включите [Serializable] через частичный класс, названный так же, как ваш класс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...