TLDR:问题是,当我尝试从Model(以下代码的第8行)获取ID时,看到以下错误:
System.NullReferenceException:对象引用未设置为对象的实例。
详细信息:
我想使HTML的一部分可重用。有一个名为“ InfoBox”的大型div,其中包含一些信息,这些信息位于我的网站上的多个位置。我决定创建Partial Razor Page。这是我的方法:
select
:
if select(2, func()) == 2 then ... end
print(select(1, func()) -- prints 1 2 3
print(select(2, func()) -- prints 2 3
print(select(3, func()) -- prints 3
print(select('#', func()) -- prints 3, the total number of arguments received
_TextBoxInfoPartial.cshtml.cs
:
public class _TextBoxInfoPartialModel : PageModel
{
[BindProperty]
public string ID { get; set; }
public IActionResult OnGet()
{
ID = ""; //default
return Page();
}
}
要将部分内容放置在另一个cshtml文件中,请使用以下行:
_TextBoxInfoPartial.cshtml
我不明白。我正在为“局部模型”指定模型,为什么然后未定义它?
答案 0 :(得分:1)
对于部分视图,请删除@page
指令。
@model Definicje.Pages.Shared._TextBoxInfoPartialModel
<button type="button" class="visibility-toggler"
visibility-toggler="#hint-math@(Model.ID)">Wstaw wzór</button>
<div id="hint-math@(Model.ID)" class="hintbox">
some text
</div>
现在Model
将成为您从另一个视图传递的_TextBoxInfoPartialModel
对象。
将@page
指令添加到视图文件时,它开始表现出不同的行为,更像是一种操作方法-您可以通过http请求进行访问。
另一个观察结果是,如果文件名以_
前缀开头,则上述路由功能将不起作用。 Http请求不能直接访问它。
因此,对于部分视图,请不要使用@page
指令