dct*_*lay 5 c# asp.net-mvc razor asp.net-core
这些实体在虚拟上相当于我要完成的工作(实际上更复杂)。
我只需要在创建Article(SendToSubscribers字段)时才需要在表单中显示其他字段,这些字段就不是实体本身的一部分。
public class Article {
public string Title { get; set }
}
public class ArticleCreateForm : Article {
public bool SendToSubscribers { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在cshtml中,用于创建/更新:
@model Article
...
@if (string.IsNullOrEmpty(Model.Id))
{
<admin-input asp-for="SendToSubscribers" />
Run Code Online (Sandbox Code Playgroud)
不幸的是,这是我得到的错误:
'Article'不包含'SendToSubscribers'的定义,找不到可以接受的扩展方法'SendToSubscribers'接受类型为'Article'的第一个参数(您是否缺少using指令或程序集引用?)
如果方法根本不好,很抱歉,我来自PHP背景。
我猜这不是一个好的解决方案,那么我该如何纠正呢?谢谢。
您的解决方案有一种与设计模式相关的方法。
创建一个容器类,它将占用两个模型:
public class MainArticleModel{
public Article article {get; set;}
public ArticleCreateForm articleCreateForm {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
然后你就可以使用它了:
@model MainArticleModel
...
@if (string.IsNullOrEmpty(Model.Id))
{
<admin-input asp-for="SendToSubscribers" />
Run Code Online (Sandbox Code Playgroud)
这样,两个模型都将包含在一个视图中。
归档时间: |
|
查看次数: |
184 次 |
最近记录: |