2013-02-10 1 views
9

.NET mvc에 새로운 기능이 있습니다. 은 "Afunc"- 액션 모델을 저장하는 부분보기 "DisplayPartial"나는이 순간제출 후 부분보기 업데이트 Ajax.Beginform

@using (Ajax.BeginForm("Afunc", new AjaxOptions())) 
{ 
    @Html.EditorFor(model => model.AstringThing) 
    @Html.EditorFor(model => model.AintThing) 

    <input type="submit" name="submit" value="Ajax Post" /> 
} 

가에서

@foreach (var thing in Model) 
{ 
    @Html.Partial("DisplayPartial", thing) 
} 

: 뷰에서

는 "DisplayThings"내가 좋아하는 뭔가를 데이터베이스에 연결 한 다음 컨트롤러 동작으로 리디렉션하여 데이터베이스에서 모든 "항목"을 검색하고 전체 "표시"보기를 렌더링합니다.

제 질문은 : 제출 버튼 중 하나를 누르면 (모든 "물건"목록에 하나의 제출 버튼이 있습니다). 그 부분보기 만 내 변경 사항을 다시로드하거나 반영하고 싶습니다. 전체 "Displaythings"보기를 다시로드하고 싶지 않습니다. 어떻게해야합니까? 부분보기 만 반환하면 그 밖의 모든 것을 잃지 만 부분보기는 잃게됩니다.

이 방법이 좋지 않으면 지시를 내리십시오.

업데이트 : 새로운 페이지에서 렌더링 부분보기를 얻을 나는 여전히 뭔가 잘못하고있는 중이 야

. 내 컨트롤러 :

public ActionResult Afunc(ThingModel thingmodel) 
{ 
    // do 

    return PartialView("DisplayPartial", thingmodel); 
} 

난 당신이 단순히 지금 new AjaxOptions로 전달하는 AjaxOptions에서 UpdateTargetId과 같은 결과 onsuccess는 모두 (새 페이지)

답변

12

를 사용하여 시도했다 당신은을 사용하여 대상 요소를 지정할 수 있습니다 UpdateTargetId 특성 :

<div id="unique_thing_id"> 
@using (Ajax.BeginForm("Afunc", new AjaxOptions { UpdateTargetId = 'unique_thing_id' })) 
{  
} 
</div> 

위, 모든 "일"에 대한 고유 ID와 용기는 <div id="unique_thing_id">로 표현된다. 이 요청의 repsonse로 대체됩니다. Afunc을 변경하여 특정 "물건"부분 만 렌더링하십시오.

+3

내가 누락 된 부분을 지적 했으므로 답변을 수락합니다. 그러나 그것은 내가 놓친 두 가지 중 하나였습니다. 일반적인 문제는 이것을 (넷 서핑 후) 잊어서 레이아웃 페이지에 추가하는 것입니다. Andreas

+0

@manojlds 새로운 질문을 열었습니까? [this] (http://stackoverflow.com/questions/30868493/form-reload-but-partialview-cannot-with-ajax-in -mvc? noredirect = 1 # comment49779357_30868493) 질문이 있으십니까? –

관련 문제