2011-05-05 3 views
4

2 열이있는 mvc 3 양식이 있습니다. 왼쪽 열은 트리 뷰이며 노드가 선택되면 id = 'partialView'인 div가 업데이트되어 해당 노드의 세부 정보를 보여줍니다. 이것은 정상적으로 작동하는 것으로 보입니다. 부분보기 인 편집 양식이 id = 'partialView'인 div에로드됩니다.mvc 3 Ajax.BeginForm이 작동하지 않는 부분보기 (새로운 양식 arrgh에 게시)

사용자가이 부분보기를 제출하면 문제가 발생합니다. 이제는 컨트롤러에 다시 게시하고 올바른 방법으로 결과가 반환되지만 id = 'partialView'인 div에 반환되지는 않지만 새로운 페이지.

따라서 부분 뷰를 게시하고 기존 부분 뷰를 대체하는 것으로 돌아가는 시나리오입니다.

이것이 가능합니까? 내 부분보기 아래 내 코드를 포함하고

은 ...

@model DataModel.Code 



@using (Ajax.BeginForm("Edit", "Code", new AjaxOptions { 
            UpdateTargetId = "partialView", 
            HttpMethod="POST" 

            } 
            )) {  


    @Html.ValidationSummary(true) 
    <fieldset> 
     <legend>Code</legend> 


     @Html.HiddenFor(model => model.CodeID) 

     <div class="editor-label"> 
      @Html.LabelFor(model => model.Description) 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.Description) 
      @Html.ValidationMessageFor(model => model.Description) 
     </div> 

     <div class="editor-field"> 
      @Html.EditorFor(model => model.Note) 
      @Html.ValidationMessageFor(model => model.Note) 
     </div> 

     <div class="editor-label"> 
      @Html.LabelFor(model => model.DateModified) 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.DateModified) 
      @Html.ValidationMessageFor(model => model.DateModified) 
     </div> 

     <div class="editor-label"> 
      @Html.LabelFor(model => model.TopicID) 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.TopicID) 
      @Html.ValidationMessageFor(model => model.TopicID) 
     </div> 

     <div class="editor-label"> 
      @Html.LabelFor(model => model.Special) 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.Special) 
      @Html.ValidationMessageFor(model => model.Special) 
     </div> 

     <div class="editor-label"> 
      @Html.LabelFor(model => model.Html) 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.Html) 
      @Html.ValidationMessageFor(model => model.Html) 
     </div> 

     <p> 
      <input type="submit" value="Save" /> 

     </p> 



    </fieldset> 
} 



<div> 
    @Html.ActionLink("Back to List", "Index") 
</div> 


@Html.Telerik().ScriptRegistrar().jQuery(true) 

<script type="text/javascript"> 

    $(document).ready(function() { 



    }); 


</script> 
+0

당신이 부분을 반환 제출 작업을 않는 _Layout.cshtml에

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script> 

포함 보기 또는 전체보기? 편집 : 나는 당신이 부분보기에서 jquery 스크립트를 포함하지 않는 것으로 나타났습니다. 추가해보십시오. – AnteSim

+0

PartialView를 반환하지만 새 페이지로 돌아갑니다 (div partialView가 아닙니다). 스크립트를 페이지에 추가했는데 아무런 차이가 없습니다. 사실 스크립트는 메인 페이지에도 있습니다. – David

+0

해결 했습니까? 방법? – polonskyg

답변

20

+0

내 부분보기에서이 줄이있는 마스터 파일을 호출하지 않았기 때문에이 똑같은 문제에 대해 근무일 반을 보냈습니다. 고맙습니다. – dasper

+0

하하, 멋지다. 나는 다른 사람으로부터 일부 코드를 상속 받았다. 나는 눈에 거슬리지 않는 아약스를 포함한다는 것을 알았다. 나는 그것에 대해 의문을 가지지 않았다. 당장! – neminem

관련 문제