c# - 在视图组件或局部视图中使用表单
问题描述
我正在使用带有没有 MVC 的剃须刀页面的 .net 核心框架,并且我正在尝试将表单与视图组件集成以使其可重用。
问题是我注意到它并不是真正适合的。实际上,我使用表单的asp-for属性,该属性实际上基于父PageModel,我在其中绑定了与表单字段对应的属性。
我想知道如何创建包含要在最终PageModel中使用的表单的可重用组件。
谢谢 :)
解决方案
如果你想让你的局部视图可重用,这意味着只应该调用一个模型。
你想使用局部视图,并从不同的模型中获取数据吗?
然后您可以使用ViewModel来包含多个不同的模型,例如:
public class MyViewModel
{
public Profile Profile { get; set; }
public Job Job { get; set; }
}
public class Profile
{
public string Name { get; set; }
}
//....other models
索引.cshtml.cs:
[BindProperty]
public MyViewModel MyViewModel { get; set; }
public void OnGet()
{
MyViewModel = new MyViewModel
{
Job = new Job { Name = "teacher" },
Profile=new Profile {Name="Peter"}
};
}
Index.cshtml(模型=用于将模型传递给部分):
<partial name="~/Pages/Shared/Partialview.cshtml" model="Model.MyViewModel" />
然后就可以在 Partial 视图中获取相关模型数据:
@model tr4cks491.Models.MyViewModel
<form method="post">
<input asp-for="Job.Name" />
<input asp-for="Profile.Name" />
<input type="submit" value="Submit" />
</form>
推荐阅读
- mysql - MYSQL查询匹配的3个表
- javascript - 无法在画布元素中绘制弧(圆)
- python - Selenium 脚本在逐行执行时有效,但在完全执行时无效
- kotlin-coroutines - 长协程体的成语(轻量级设计模式)?
- python - 我可以接收有关连接到我的服务器的新 IP 地址的通知吗?
- php - 如何反转这个json
- identityserver4 - 身份服务器 4 和基于角色的用户访问 api 资源
- javascript - HTML 页面未针对特定 URL 呈现
- oracle - 如何在存储过程中动态传递表名 - ORACLE
- xamarin - 计划通知在 android 9.0 中不起作用