2017-01-03 1 views
0

HTML 양식을 사용하여 예상 고객 정보를 서버에 제출하려고합니다. 먼저, 제출하고자하는 고객의 수를 결정하는 아약스 양식을 보유하고있는 주요보기가 있습니다. 이를 제출하면 부분 뷰에 필요한 양의 입력이 채워집니다. 이 고객의 제목 예 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> 

모든 그러나 고객 정보를 제출시, 제대로 생성 보인다, 그것은 첫 번째 고객의 정보를 제출 실패 (개별 주문을 [0]). 내 컨트롤러에 중단 점을 넣으면 sessionPriv.indi는 1 명의 개인 만 가지며 그 개인은 두 번째 고객 세부 정보 집합입니다.

기본적으로 고객 데이터의 첫 번째 세트를 제출하지 않으며 이유가 없습니다. 모든 지침은 매우 높이 평가 될 것입니다 (여전히 ASP에 대해 상당히 새로운 것입니다). 나는 아래에 코드 exstracts를 포함시켰다.

홈페이지보기 (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); 
    } 

답변

0

내가 코멘트를 추가하지만 난 아직 캔트.

브라우저에서 웹 개발자 콘솔을 보았습니까? 이 배열이 요청에 제대로 전달 되었습니까?

무엇이 VisualfilesSession입니까?

+0

필자는 디버깅 기술에 대해 알아볼 필요가 있습니다. 나는 개발자 콘솔을 사용했고, 그것을 통과하고있다. 내 중단 점을 내 코드에서 직접 조작하지 않은 지점으로 옮겼습니다. 거기에 있습니다. 내가 나중에 라인을 잃어 버리고있는 것 같다 (내 컨트롤러가 (나는 추측하고있다) 문제를 일으키는 중개인에게 전화를한다). –