如何检查模型中的子模型是否已在 Asp MVC 视图中定义

本文关键字:模型 Asp 定义 视图 MVC 是否 何检查 检查 | 更新日期: 2023-09-27 18:34:00

>我有两个类模型:

作者.cs

public class Author()
{
    public int AuthorID { get; set; }
    public string Name { get; set; }
    public string  Location { get; set; }
    [DataType(DataType.MultilineText)]
    public string  Bio { get; set; }
    public virtual ICollection<Blog> Blogs { get; set; }
}

博客.cs

 public class Blog
 {
    public int BlogID { get; set; }
    public int AuthorID { get; set; }
    public virtual  Author Author { get; set; }
    [Required]
    public string  Title { get; set; }
    [DataType(DataType.MultilineText)]
    public string  Description { get; set; }
 }

显然,作者可以有很多博客现在,问题出在博客视图中。如果一个人写"~/Blog/Create",我首先想检查是否已经有任何作者对象。如果没有,我会先将它们重定向到"~/作者/创建"。这就是我迄今为止试图完成的目标:

Blog/Create.cshtml 的标题:

@model MVCproject.Models.Blog
@{
  if (Model.Author == null)
  {
        Response.Redirect("~/Author/Create");
  }

这是我能表达的最合乎逻辑的方式,但空异常被抛给我,我不知道如何解决这个问题。我怀疑我必须将"if(Model.Author == null)"语句更改为更方便的内容。

编辑:

我没有更改控制器中的任何内容,我按原样保留了 mvc 脚手架。

如何检查模型中的子模型是否已在 Asp MVC 视图中定义

在视图中有任何逻辑都是一个糟糕的设计决策。您应该改为在控制器中执行重定向。

在创建博客操作中,如果作者null只需将用户重定向到另一个操作:

return RedirectToAction("Create", "Author");