簡體   English   中英

如何停止在頁面加載時顯示部分視圖 - ASP.NET MVC

[英]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

以下是您可以用來限制事件的一些邏輯。

  1. 如果您確定 @Session["ProjectId"] 為空或小於 1,那么您可以在showProjectModal function 下放置一個條件。如果 projectId 有數據,那么只有您初始化其他任何東西。

  2. 另一個選項是您可以從登錄頁面的 controller 端填充ViewBag 識別來自登錄的請求,以便您可以動態呈現腳本。

  3. 您也可以在 JavaScript 的幫助下處理 URL,如果登錄頁面不需要呈現/加載事件,您可以檢索並檢查條件。

  4. 您還可以使用部分作為局部視圖來加載您的內容。

請提供更多詳細信息,以便為您提供更多指導。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM