簡體   English   中英

正確設置 razor 頁面以訪問代碼隱藏中的數據

[英]Setup correctly a razor page to have access to data in code-behind

我是 Razor 頁面的新手,我發現可以使用代碼隱藏文件來划分代碼。 所以我創建了這個索引 class 來初始化我的日期並將它們打印到.cshtml文件。 但是當我嘗試編譯並運行它時,我得到了一個錯誤

“對象引用未設置為 object 的實例。”

當我嘗試使用@Model.date

我知道變量沒有初始化,因為永遠不會調用 OnGet 方法。 但它應該在請求頁面時調用,對嗎?那么為什么變量永遠不會初始化? 我在 localhost 中使用 visual studio 啟動項目,所以我只想打印數據。 首先,當我將代碼放入 Razor 頁面而不使用 class Index時,它按我預期的方式工作。 當我試圖進入學習路徑的下一步時,我被卡住了。

@page
@model SportData.Web.Views.Home.Index

<div class="date">
    <h1>Aggiornamento lista in data @Model.date</h1> --> error here
 
</div>
using Microsoft.AspNetCore.Mvc.RazorPages;

namespace SportData.Web.Views.Home
{
    public class Index : PageModel
    {
        List<string> months = new List<string>();
        public DateTime date { get; set; }

        public int num = 4; --> also this give the same error if i try to put in the h1 tag
        public DateTime specificDate { get; set; }
         
        public void OnGet() {
            date = DateTime.Now;
            specificDate = new DateTime(2022, 08, 01);
        }
    }
}

帶調試:鏈接到調試結果屏幕

[解決方案]:最后,問題是我創建了一個 ASP.NET Web (MVC) 項目,我試圖在其中實現 Razor 模式。 所以,我知道這不是我必須做的,但在 MVC 項目中與 Razor 頁面交互的最簡單方法是通過 Controller 而不是通過創建為代碼隱藏的 Model。

如果其他人想提供有關 MVC 和 Razor 的其他信息,則可以接受。 謝謝。

所以我創建了這個索引 class 來初始化我的日期並將它們打印到 .cshtml 文件。 但是當我嘗試編譯並運行它時,出現錯誤"'Object reference not set to an instance of an object." . 當我試圖進入學習路徑的下一步時,我被卡住了。

好吧,由於您對視圖@model SportData.Web.Views.Home.Index的引用不正確,您會收到異常

解決方案:

您應該使用您的參考作為@model Index ,因此您的視圖應如下所示:

@page
@model Index

<div class="date">
    <h1>Aggiornamento lista in data @Model.date</h1>
 
</div>

在此處輸入圖像描述

您可以在此處獲取更多詳細信息

Output:

在此處輸入圖像描述

筆記:

如果您需要更多實施示例,可以在此處查看我們的官方文檔。

暫無
暫無

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

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