.NET Fiddle

CSharp · Mvc

Model

using System;
using System.ComponentModel.DataAnnotations;

namespace HelloWorldMvcApp
{
	public interface IParent<out T>
		where T : IChild
	{
	}

	public class Parent<T> : IParent<T>
		where T : IChild
	{
	}

	public class Child : IChild
	{
	}

	public interface IChild
	{
	}
}

View

@model HelloWorldMvcApp.IParent<HelloWorldMvcApp.IChild>
@{
	Layout = null;
}

<div>
works
</div>

Controller

using System;
using System.Web.Mvc;
using System.Collections.Generic;

namespace HelloWorldMvcApp
{
	public class HomeController : Controller
	{
		public ActionResult Index()
		{
			return View(new Parent<Child>());
		}
	}
}
;