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