我有两个班级模型:
Author.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; }
}
Blog.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”我首先要检查是否已有任何作者对象。 如果没有,我会先将它们重定向到“〜/ Author / Create”。 这就是我到目前为止试图完成的事情:
Blog / Create.cshtml 的标题:
@model MVCproject.Models.Blog
@{
if (Model.Author == null)
{
Response.Redirect("~/Author/Create");
}
这是我能表达它的最合理的方式,但是Null Exception被抛到我身上,我不知道要解决这个问题。 我怀疑我必须将“if(Model.Author == null)”语句更改为更方便的内容。
修改
我没有更改控制器中的任何内容,我按原样离开了mvc脚手架。
答案 0 :(得分:2)
在视图中有任何逻辑是一个糟糕的设计决定。您应该在控制器中执行重定向。
在您的创建博客操作中,如果作者是null
,只需将用户重定向到另一个操作:
return RedirectToAction("Create", "Author");