[英]How can I stop showing a partial view on page load - ASP.NET MVC
當用戶單擊不在頁面加載時的按鈕時,我想顯示部分視圖。 我遇到了一個問題,部分視圖總是出現在頁面加載和按鈕單擊時。 我無法在頁面加載時隱藏它。 這是_projectView.cshtml
的局部視圖
@Html.Hidden("SessionProjectId", Convert.ToString(Session["PId"]))
<div id="projectModal" class="modal hide fade">
<div class="modal-body">
@(Html.Kendo().ComboBox()
</div>
</div>
<script type="text/javascript">
function showProjectModal(projectId) {
$('#projectModal').modal({
backdrop: 'static', keyboard: false
});
if (projectId > 0) {
$("#ProjectCombo").data("kendoComboBox").value(projectId);
}
else {
$('#projectModal').find('.close').hide();
}
}
</script>
這是 _login(這也是項目常見的部分視圖)頁面,其中_projectView.cshtml
使用showProjectModal
按鈕 function 進行初始化。下面的代碼還顯示了頁面加載時的彈出窗口(我不想要)。
<div>@Html.Partial("_ChooseProject")</div>
<div class="row-fluid">
<div class="span12">
<div>
<button type="button" class="btn btn-default" onclick="showProjectModal(@Session["ProjectId"] );">Project: <span id="projectLabel">@Session["ProjectName"]</span></button>
</div>
</div>
</div>
這是一個位於屏幕頂部中央的彈出窗口。 當我嘗試使用 css/js 在頁面加載時隱藏它時,它隱藏但屏幕鎖定/模糊。 我無法點擊任何地方。
如何在頁面加載時停止顯示_projectView.cshtml
中的_login.cshtml
?
以下是您可以用來限制事件的一些邏輯。
如果您確定 @Session["ProjectId"] 為空或小於 1,那么您可以在showProjectModal function 下放置一個條件。如果 projectId 有數據,那么只有您初始化其他任何東西。
另一個選項是您可以從登錄頁面的 controller 端填充ViewBag 。 識別來自登錄的請求,以便您可以動態呈現腳本。
您也可以在 JavaScript 的幫助下處理 URL,如果登錄頁面不需要呈現/加載事件,您可以檢索並檢查條件。
您還可以使用部分作為局部視圖來加載您的內容。
請提供更多詳細信息,以便為您提供更多指導。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.