現在、データをロードしてグリッドに表示するために、いくつかのパラメータを選択してボタンをクリックするページがありますが、データを表示する機能はありませんページの読み込み(URLパラメータ経由)。必要なルーティング設定とアクションを追加しましたが、ページのレンダリングに問題があります。スタイルなしでPartialViewのみを表示します。ページ全体のパーシャルビュー(およびデータ)をレンダリングする
パーシャルビューだけでなく、ページ全体をレンダリングするにはどうすればよいですか?
以下は、私のビューとコントローラのための簡単なコードです。私は最終的に解決策を見つけた
ビュー/プレーニング/ Index.cshtml
@model PlaningTool.Web.Models.PlaningViewModel
<div class="row">
<div>
@using (Ajax.BeginForm("GetDataRows",
"Planing",
new AjaxOptions
{
HttpMethod = "Get",
UpdateTargetId = "gridPlaceholder",
LoadingElementId = "loadingIndicator"
}))
{
<!-- some comboboxes to select project and year -->
<input type="submit" value="Load data" />
}
</div>
</div>
<div id="gridPlaceholder">
<div id="loadingIndicator" style="display: none;">
<img src="~/Content/images/loading-image.gif" />
</div>
</div>
コントローラ/ PlaningController.cs
public partial class PlaningController : Controller
{
public virtual ActionResult Index()
{
return View();
}
public virtual ActionResult Plan(long projectID, int year)
{
var viewModel = new PlaningViewModel
{
ProjectID = projectID,
Year = year
};
// return GetDataRows(viewModel);
return RedirectToAction("GetDataRows", viewModel);
}
[RestoreModelStateFromTempData(typeof(PartialViewResult))]
public virtual PartialViewResult GetDataRows(PlaningViewModel viewModel)
{
// Load data from database with viewModel.ProjectID
// and viewModel.Year as parameters
[...]
var vm = new PlaningViewModel
{
// Set ViewModel for loaded data
[...]
};
return PartialView("Shared/_PlaningViewModelRows", vm);
}
[...]
}
あなたのAJAX通話に問題があるようです。正しいJSファイルを参照しているようにしてください。 AJAXファイルを使って、あなたはFull投稿をしていて、JS/CSSなどでレスポンス(あなたの部分的なビュー)をレンダリングしています。 – KevDevMan