我想了解MVC应用程序内的继承,我有几件事情,如果有人可以请帮忙,我想澄清一下。ASP.NET MVC中的继承和BASE类
问题1
如果我有以下三类它继承交相辉映这里如下
Public class StandardPage
Public class ArticlePage : StandardPage
Public class NewsPage : ArticlePage
是在StandardPage班上唯一的基类或者是ArticlePage类也被称为作为BASE类,因为NewsPage类是从它派生的?
在坚果外壳是派生自其他类也称为BASE类的类(对于继承它的类)?
问题2
如果我在强类型视图文件(带有剃刀)工作时定义的上述类别,如果我编写以下代码
@foreach (var article in Model.Articles)
{
if (article is StandardPage)
{
var articlePage = article as StandardPage;
如果内的对象文章var的类型为StandardPage,ArticlePage或新闻页面,那么文章页面var将被填充而没有任何问题,因为StandardPage是BASE类,其中NewsPage同时也是继承,但是如果我将代码更改为以下代码
@foreach (var article in Model.Articles)
{
if (article is StandardPage)
{
var articlePage = article as ArticlePage;
当文章VAR里面的对象类型StandardPage试图填充articlePage变种,因为StandardPage不从ArticlePage继承(到时我会收到“对象引用不设置到对象的实例”的这是相反的方式),因此我无法将某种类型的StandardPage转换为ArticlePage。
手指IM越过近那里了解这一点,但如果没谱IM方式可能有人请点我朝着正确的方向在前进
感谢
我认为如果你正在循环你的文章并将它们投射到你的视图中,那么你可能做错了什么。 – Paddy
是的,但让我说我支持一个应用程序,这是它如何被写入,是我对视图内继承的理解是正确的?我提出这些问题的关键是了解继承是如何工作的。我明白,MVC是为了提供一种方法来分隔内部视图等逻辑。感谢您的回应 – Paul
@HenkHolterman - 我想你可能有错误 - 鉴于代码,NewsPage是一篇文章。 – Paddy