微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在视图组件或局部视图中使用表单

如何解决在视图组件或局部视图中使用表单

我将 .net 核心框架与没有 MVC 的 razor 页面一起使用,我正在尝试将表单与视图组件集成以使其可重用。

问题是我注意到它不是真的。实际上,我使用了表单的 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

Index.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(model= 用于将模型传递给部分):

<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>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?