如何检查模型中的子模型是否已在 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 脚手架。
在视图中有任何逻辑都是一个糟糕的设计决策。您应该改为在控制器中执行重定向。
在创建博客操作中,如果作者null
只需将用户重定向到另一个操作:
return RedirectToAction("Create", "Author");