我的控制器中有以下操作方法。我在這裏有一個多頁嚮導場景。現在當我點擊下一步時,我得到這個「....類型未標記爲序列化」的錯誤信息。我看過有關同一問題的帖子,但無法獲得我的解決方案。未標記爲序列化錯誤,而該類實際上標記爲帶註釋的序列化
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");
}
這爲下一步回報點擊此錯誤。被稱爲「未標記爲可序列化」的類甚至不包含在目前涉及的對象中,而是在同一控制器中的後續行中使用。
由於這一點,我被困住了,請儘快幫助。
這與您的問題無關,但您的操作方法的最後一次返回沒有用處。 –
哪些類未標記爲可序列化(根據您的錯誤?)。另外 - mJ.newMember = new Individual();我也沒用。你正在重定向到一個動作,這些值都將在重定向時丟失,除非在幕後newMember使用TempData這是一個奇怪的解決方案。也堅持微軟命名約定。它使代碼在眼睛上更容易一些。例如vmj.NewMember –
不確定這是否是問題的一部分,但是您的結束字段集標記超出了使用範圍。開放的fieldset標籤在使用中。不知道可能會導致什麼樣的行爲,但我認爲值得指出。 –