HTMLフォームを使用して、見込み顧客情報をサーバーに送信しようとしています。まず、私は送信したい顧客の数を決定するajaxフォームを保持する主なビューを持っています。これを提出すると、部分ビューに必要な入力量が入力されます。 2人の顧客のタイトルの例HTMLエキス:ASP MVC部分ビューの問題でIListをバインドする
<td class="quoteStandardCell"><input name="sessionPriv.indi[0].title" tabindex="1" class="visualfilesinputtext" id="sessionPriv_indi_0__title" autofocus="autofocus" type="text" value=""></td>
<td class="quoteStandardCell"><input name="sessionPriv.indi[1].title" tabindex="11" class="visualfilesinputtext" id="sessionPriv_indi_1__title" autofocus="autofocus" type="text" value=""></td>
すべてが正しく生成に見えます、しかし、顧客情報を提出すると、それは最初の顧客の情報を提出しない(INDI [0])。コントローラにブレークポイントを設定すると、sessionPriv.indiには1人の個人しかなく、その個人は2番目の顧客詳細のセットになります。
基本的に、それは顧客データの最初のセットを提出するのではなく、私はなぜそのような理由がわかりません。どんな指導も大いに評価されるだろう(まだASPにはかなり新しい)。私は以下のコードの抽象概念を含んでいます。
メインビュー(CreatePrivate.aspx)
<%using (Ajax.BeginForm("indiView", "Visualfiles", null, new AjaxOptions { UpdateTargetId = "indiPartial", HttpMethod = "post", OnSuccess = "pageLoaded()" }, new { id = "genIndiForm" }))
{ %>
<table class="visualfilestable" id="indiHeadTable">
<tr>
<td colspan="4" class="quoteIndiHeader">Prospect Details</td>
</tr>
<tr class="quoteIndi quoteHeader">
<td class="quoteStandardCell">Prospect Type</td>
<td class="quoteStandardCell"><%: Html.DropDownListFor(n => Model.sessionPriv.type, new SelectList(privateType.types, "typeID", "typeName"), new { @class = "visualfilesinputdropdown", @onchange = "showIndiCount(this.value)", @id = "privateType" }) %></td>
<td class="quoteStandardCell IndiCountTR">Number of Individuals</td>
<td class="quoteStandardCell IndiCountTR"><%: Html.TextBoxFor(n => Model.sessionPriv.indiCount, new { @class = "visualfilesinputtext", @autofocus = "autofocus", type = "number", min = "2", max = "10", id = "indiCount" })%></td>
<td><input class="visualfilespostbutton" type="submit" id="Submitbutton" value="Continue" onclick="document.getElementById('visualfilesbusy').style.display = 'inline';" /></td>
</tr>
</table>
<%} %>
<%using (Html.BeginForm("createPrivate", "Visualfiles", FormMethod.Post, new { id = "createPrivForm", name = "privForm" }))
{ %>
<div class="indiPartial" id="indiPartial"></div>
<% } %>
部分図(_indiData.ascx)
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ASPOnline.Models.VisualfilesSession>" %>
<div class="indiWrapper">
<%if (Model != null)
{ %>
<% for (var i = 0; i < Model.sessionPriv.indiCount; i++)
{ %>
<div class="indiDiv">
<table class="indiTable">
<tr class="quoteIndiHeader">
<td colspan="8">Individual <%= i+1 %></td>
</tr>
<tr class="quoteIndi">
<td class="quoteStandardCell">Title</td>
<td class="quoteStandardCell"><%: Html.TextBoxFor(n => Model.sessionPriv.indi[i].title, new { @class = "visualfilesinputtext", @autofocus = "autofocus", tabindex=(i.ToString() + 1.ToString()).AsInt() })%></td>
<td class="quoteStandardCell">House Name/Flat</td>
<td class="quoteStandardCell"><%: Html.TextBoxFor(n => Model.sessionPriv.indi[i].houseName, new { @class = "visualfilesinputtext", @autofocus = "autofocus", tabindex=(i.ToString() + 4.ToString()).AsInt() })%></td>
<td class="quoteStandardCell">Locality</td>
<td class="quoteStandardCell"><%: Html.TextBoxFor(n => Model.sessionPriv.indi[i].locality, new { @class = "visualfilesinputtext", @autofocus = "autofocus", tabindex=(i.ToString() + 7.ToString()).AsInt() })%></td>
<td class="quoteStandardCell">Postcode</td>
<td class="quoteStandardCell"><%: Html.TextBoxFor(n => Model.sessionPriv.indi[i].postcode, new { @class = "visualfilesinputtext", @autofocus = "autofocus", tabindex=(i.ToString() + 10.ToString()).AsInt() })%></td>
</tr>
<tr class="quoteIndi">
<td class="quoteStandardCell">Given Name</td>
<td class="quoteStandardCell"><%: Html.TextBoxFor(n => Model.sessionPriv.indi[i].givenName, new { @class = "visualfilesinputtext", @autofocus = "autofocus", tabindex=(i.ToString() + 2.ToString()).AsInt() })%></td>
<td class="quoteStandardCell">House Number</td>
<td class="quoteStandardCell"><%: Html.TextBoxFor(n => Model.sessionPriv.indi[i].houseNumber, new { @class = "visualfilesinputtext", @autofocus = "autofocus", tabindex=(i.ToString() + 5.ToString()).AsInt() })%></td>
<td class="quoteStandardCell">Town</td>
<td class="quoteStandardCell"><%: Html.TextBoxFor(n => Model.sessionPriv.indi[i].town, new { @class = "visualfilesinputtext", @autofocus = "autofocus", tabindex=(i.ToString() + 8.ToString()).AsInt() })%></td>
<td class="quoteStandardCell">Daytime Contact</td>
<td class="quoteStandardCell"><%: Html.TextBoxFor(n => Model.sessionPriv.indi[i].daytimeContact, new { @class = "visualfilesinputtext", @autofocus = "autofocus", tabindex=(i.ToString() + 10.ToString()).AsInt() })%></td>
</tr>
<tr class="quoteIndi">
<td class="quoteStandardCell">Family Name</td>
<td class="quoteStandardCell"><%: Html.TextBoxFor(n => Model.sessionPriv.indi[i].familyName, new { @class = "visualfilesinputtext", @autofocus = "autofocus", tabindex=(i.ToString() + 3.ToString()).AsInt() })%></td>
<td class="quoteStandardCell">Street Name</td>
<td class="quoteStandardCell"><%: Html.TextBoxFor(n => Model.sessionPriv.indi[i].street, new { @class = "visualfilesinputtext", @autofocus = "autofocus", tabindex=(i.ToString() + 6.ToString()).AsInt() })%></td>
<td class="quoteStandardCell">County</td>
<td class="quoteStandardCell"><%: Html.TextBoxFor(n => Model.sessionPriv.indi[i].county, new { @class = "visualfilesinputtext", @autofocus = "autofocus", tabindex=(i.ToString() + 9.ToString()).AsInt() })%></td>
<td class="quoteStandardCell">Mobile Number</td>
<td class="quoteStandardCell"><%: Html.TextBoxFor(n => Model.sessionPriv.indi[i].mobile, new { @class = "visualfilesinputtext", @autofocus = "autofocus", tabindex=(i.ToString() + 10.ToString()).AsInt() })%></td>
</tr>
<tr class="quoteIndi">
<td class="quoteStandardCell">Email</td>
<td class="quoteStandardCell"><%: Html.TextBoxFor(n => Model.sessionPriv.indi[i].email, new { @class = "visualfilesinputtext", @autofocus = "autofocus", tabindex=(i.ToString() + 10.ToString()).AsInt() })%></td>
</tr>
</table>
</div>
<% } %>
<div class="indiPartialSubmit"><input class="visualfilespostbutton" type="submit" value="Create Private" /></div>
<% } %>
</div>
モデルデータ
public class individual
{
// Name
public string title { get; set; }
public string givenName { get; set; }
public string familyName { get; set; }
// Address Details
public string houseName { get; set; }
public string houseNumber { get; set; }
public string street { get; set; }
public string locality { get; set; }
public string town { get; set; }
public string county { get; set; }
public string postcode { get; set; }
// Contact Details
public string daytimeContact { get; set; }
public string mobile { get; set; }
public string email { get; set; }
public individual() {
title = "";
givenName = "";
familyName = "";
houseName = "";
street = "";
locality = "";
town = "";
county = "";
postcode = "";
daytimeContact = "";
mobile = "";
email = "";
}
}
public class priv
{
public int type { get; set; } // Individual/Couple/Group
public int indiCount { get; set; }
public string role { get; set; }
public IList<individual> indi { get; set; }
public priv()
{
type = 0;
indiCount = 0;
role = "";
}
}
コントローラ
[HttpPost]
public ActionResult createPrivate(VisualfilesSession viewSession)
{
return PartialView(getNextPage(viewSession, "createPrivate"), savedSession);
}
私は自分のデバッグのスキルを勉強する必要があるように見えます。私は開発者のコンソールを使用し、それがパスされています。ブレークポイントをコード内で直接操作していないポイントに移動しました。そこにはブレークポイントがあります。私は後でそれを失っているようだ(私のコントローラは(私が推測している)問題を引き起こしているブローカーに電話をかける)。 –