this questionをチェックして、私の初期の問題を解決しました。しかし、ユーザーがリンクをクリックしたときにのみ部分ビューをレンダリングする必要はなく、部分ビューがロードされているときに部分ビューをレンダリングし、部分ビューがロードされている間に進行状況インジケータを表示することもできます。ajaxを使用して部分ビューをレンダリングする
これを達成する方法は?
ありがとうございます。
this questionをチェックして、私の初期の問題を解決しました。しかし、ユーザーがリンクをクリックしたときにのみ部分ビューをレンダリングする必要はなく、部分ビューがロードされているときに部分ビューをレンダリングし、部分ビューがロードされている間に進行状況インジケータを表示することもできます。ajaxを使用して部分ビューをレンダリングする
これを達成する方法は?
ありがとうございます。
上
@Html.Partial(...)
と書いて最初のページに表示することができます。あなたがページをロードし、その後、AJAX経由部分ビューをロードしたい場合は、ActionMethod
ことを(jqueryのAJAX操作を使用して)デフォルトページ
<div id='mod1'>Loading...</div>
<script type="text/javascript">
$("#mod1").load("/ControllerName/GetModule?partialName=test1");
</script>
コントローラ
public ActionResult GetModule(string partialName){
return PartialView("~/Views/Shared/"+partialName);
}
を作成することができます次のようなことをします:
public ActionResult Create()
{
var model = new MyModel();
if (Request.IsAjaxRequest())
{
return PartialView("_Partial", model.PartialModel);
}
else
{
return View(model);
}
}
あなたのページで次のようなもの:
$(function(){
$(document).ajaxStart(function() {
//show a progress modal of your choosing
showProgressModal('loading');
});
$(document).ajaxStop(function() {
//hide it
hideProgressModal();
});
$.ajax({
url: '/controller/create',
dataType: 'html',
success: function(data) {
$('#myPartialContainer').html(data);
}
});
});
「Partial View」のファイル形式を入れる必要はありますか? .cshtmlのように –
Think @ Html.ParitalはAjax、jqueryでは使用できません。 – Shan
@Shan:サーバー側のことです。それはそれとは関係ありません。 – SLaks
@SLaksは、メインビューが表示された後に表示する部分的なビューが必要なようです(おそらく長い時間の初期処理を避けるためです)。あなたが提案する@ Html.Partial()は、私が知っている限り、メインビューと共にサーバー上で処理されます。それで、それは男の問題を解決しません。私はまた最初に質問で騙された。 – cnom