インデックスビューで部分的なビューを更新する際にいくつか問題があります。基本的に、クリックに基づいて、私は情報を更新したいと思います。ボタンのクリックで@ Html.action()をシミュレートする必要があります
//controller
public ActionResult Index()
{
var filteredObservations = getFilteredObservationSessions().ToList();
var observationManagementVm = new ObservationManagementVM(filteredObservations);
return View(observationManagementVm);
}
public ActionResult indexPagedSummaries(int? page, List<ObservationSessionModel> data)
{
var alreadyFilteredObservations = data;
int PageSize = 10;
int PageNumber = (page ?? 1);
return PartialView(alreadyFilteredObservations.ToPagedList(PageNumber, PageSize));
}
私の主なビュー
//index.cshtml
@model AF.Web.ViewModels.ObservationManagementVM
....
<div id="testsim">
@Html.Action("indexPagedSummaries", new { data = Model.ObservationSessions })
</div>
<input id="new-view" value="Sessions" type="button" />
<script>
$("#new-view").click(function() {
$.ajax({
type: "GET",
data: { data: "@Model.FeedBackSessions" },
url: '@Url.Action("indexPagedSummaries")',
cache: false,
async: true,
success: function (result) {
console.log(result);
$('#testsim').html(result);
$('#testsim').show();
}
});
});
</script>
....
そして、私の部分図
//indexPagedSummaries.cshtml
@model PagedList.IPagedList<AF.Services.Observations.ObservationSessionModel>
@using (Html.BeginForm("indexPagedSummaries"))
{
<ol class="vList vList_md js-filterItems">
@foreach (var item in Model)
{
@Html.DisplayFor(modelItem => item)
}
</ol>
<div>
Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
@Html.PagedListPager(Model, page => Url.Action("Index",
new { page }))
</div>
}
Html.Action()私は完全に欲しいものを返しますが、できていないようですボタンのクリックによってトリガされます。
私はエラーは表示されませんが、URLはデータを返すことはありません。データを渡さずにObservation/indexPagedSummary URLを実行しようとすると、System.ArgumentNullExceptionエラーが発生するので、何かがビューモデルに転送されていると仮定しています。どんな助けでも大歓迎です。
こんにちはカレブ、あなたのコメントをありがとう。残念ながら、変更を加えても結果には影響はありません - 私はまだ同じ応答を得ています。私は生成されたURLをチェックし、実際に同じURLを作成するように見えます。それが役立つ場合、http:// localhost:60985/Observation/indexPagedSummaries?data = System.Collections.Generic.List%601%5BAF.Services.Observations.ObservationSessionModel%5D&data = System.Collections.Generic.List%601%5BAF。 Services.Observations.ObservationSessionModel%5D&_ = 1482453264080 –
URLにDataが2回あるため、@ Model.FeedBackSessionsと@ Model.ObservationSessionsの違いは何ですか? –
フィードバックセッションは、観測セッションのサブセットです。新しいビューとフィルタリングされたデータは、部分ビューに渡したいものです。 –