我正在建立一个新网站,其中一项要求是使登录表单成为模式窗口。我试图将其包含在顶部导航栏中,并且仅当用户未登录时才呈现它。
如何在顶部导航栏中添加具有自己的模型的模态窗口?有其他选择吗?
如果我删除模型并让一个空的模态一切正常,但是当我再次添加它时,它不起作用,因为页面的模型(在本例中是索引页面)是一个与之不同的模型。模式登录。
P.S。我正在使用Razor Pages和ASP.NET Core 2.2。
答案 0 :(得分:1)
局部视图
因此,您制作了一个_LoginPartial.cshtml
文件。假设您设置了@model LoginViewModel
在此_LoginPartial.cshtml
内,您具有登录模式和所有功能。
现在,当您在具有模型Index
的{{1}}页面内调用部分时,您需要像这样将新模型传递给部分:
@model AnotherModel
<partial name="_LoginPartial" model='new LoginViewModel()' />
是您的name
页面的名称。
cshtml
是页面的model
。
查看组件
简而言之,如果您采用这种方式,这本质上就像是在页面内嵌套一个小控制器。允许您更改@model
的范围。
Read more about View Components
更新嵌套对象
您需要实例化对象属性。
@model