2009-04-09 2 views
1

두 개의 부분 뷰가있는 뷰를 사용합니다.ModelState가 유효하지 않은 경우 ASP.NET MVC AJAX가 UpdateTargetId를 변경합니다.

<div id="matches"> 
    <% foreach (var item in Model) 
     { %> 
    <% Html.RenderPartial("RenderMatchesListRowUserControl", item); %> 
    <% } %> 
</div> 
<div id="addMatchFormBox">  
    <% Html.RenderPartial("AddNewMatchUserControl");%> 
</div> 

제 1 부분도 "RenderMatchesListRowUserControl"이 (일치하는 목록) 간단한 div 요소, 두번째 "AddNewMatchUserControl는"목록 아래 새로운 매치 제작하는 형태 렌더링 렌더링 :

원본 AddNewMatchUserControl의 :

<%= Html.ValidationSummary("Create was unsuccessful. Please correct the errors and try again.") %> 

<% using (Ajax.BeginForm("Create", new AjaxOptions 
    { 
     UpdateTargetId = "matches", 
     InsertionMode = InsertionMode.InsertAfter, 
     OnSuccess = "flashit", 
     OnFailure = "renderForm" 
    })) 
    {%> 
<fieldset> 
    <legend>New Match</legend> 
    <p> 
     <label for="DurationBetweenMovesInDays"> 
      Dauer (in Tagen) zwischen den Z&uuml;gen:</label> 
     <%= Html.TextBox("DurationBetweenMovesInDays")%> 
     <%= Html.ValidationMessage("DurationBetweenMovesInDays", "*")%> 
    </p> 
    <p> 
     <input type="submit" value="Create" /> 
    </p> 
</fieldset> 
<% } %> 

는 ModelState에 따라, 컨트롤러는 모델의 오류를 표시하는 양식에 대한 새로운 일치 항목 또는 부분보기위한 부분 뷰를 돌려줍니다.

if (Request.IsAjaxRequest()) { 
      return ModelState.IsValid ? PartialView("RenderMatchesListRowUserControl", match) : PartialView("AddNewMatchUserControl"); 
     } 

ModelState가 무효가 될 때까지 제대로 작동합니다. 이 경우 양식은 일치 목록이 포함 된 div 요소를 참조하기 때문에 updatetargetid가 일치 목록의 끝에 렌더링됩니다. 이를 방지하려면 양식을 포함하는 div 요소를 참조하도록 updatetargetid를 변경해야합니다. 그러나 나는 이것을 어떻게하는지 모른다.

답변

-2

오케이. 그렇게 할 수있는 방법이 없습니다. jQuery로 해결했다.

+0

문제를 어떻게 해결했는지 알려 주시면 감사하겠습니다. –

관련 문제