(고화질)은 다음과 같습니다 AjaxOptions에 도달하지. 그러나 PartialVeiwResult를 반환해야하는 URL.Action "GetDocGroupSearchFields"는 호출되지 않습니다.MVC Ajax.BeginForm 도우미 행동을
같은 외모에서 해당 :
@using (Ajax.BeginForm(ajaxOptionsDocGroupsForm))
{
@Html.Action("GetDocumentGroups", new { userId = Model.Id })
<button type="submit">Get Search Fields >></button>
}
가 그리고 렌더링 된 HTML은 이것이다 :
<div class="docGroupsWrapper">
<form action="/" data-ajax="true" data-ajax-loading="#loadingSearchFields" data-ajax-loading-duration="5000" data-ajax-mode="replace" data-ajax-update="#divSearchFieldRows" data-ajax-url="/Home/GetDocGroupSearchFields" id="form0" method="post">
<b>Document Groups:</b>
<select id="DocGroupItems" name="DocGroupItems">
<option value="">--Select One--</option>
<option value="3">AuthLetters</option>
<option value="4">SummaryVouchers</option>
<option value="5">ExplanationOfBenefits</option>
</select>
<button type="submit">Get Search Fields >></button>
</form>
<div id="divSearchFields" class="searchFieldsWrapper">
<div id="loadingSearchFields" class="load" style="display:none">
<p>loading Document Search Fields...</p>
</div>
<div id="divSearchFieldRows">
<span class="instructions">
Choose a Document Group from above to see columns to search with. >>
</span>
</div>
</div>
그러나 그것은 단지 홈 컨트롤러의 액션 타격되지 않습니다 GetDocGroupSearchFields를, 이것은 지금 당장 보입니다.
public PartialViewResult GetDocGroupSearchFields(int docGroupId)
{
List<DocumentGroupField> searchFields = new List<DocumentGroupField>();
return PartialView();
}
그리고 반환 된 부분보기 그냥 이것이다 :
@using VaultSearch.Models
@model List<DocumentGroupField>
<b>Search Fields!!!</b>
그래서, 정말 작업이 유일한 것은 로딩 DIV이다.
저는이 모든 개념을 Adam Freeman의 APRESS 책인 Pro ASP.Net MVC 4, Chapter 21 buildup에서 다루었습니다.
나는 여기에서도 거의 똑같은 일을하고 있습니다. 왜 작동하지 않는지 알 수 없습니다. Adam은 그의 예제에서 어떠한 동사 또는 ChildAction 속성도 지정하지 않으며 모두 작동합니다.
방금 Ajax.BeginFrom 도우미가 렌더링 된 양식에 method = post를 넣었습니다. 그래서 PartialViewResult를 반환하는 작업에 [HttpPost] 특성을 추가했습니다. – Sam