Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 继承了具有不同viewmodel的局部视图_.net_Inheritance_Asp.net Mvc 2_Viewmodel_Asp.net Mvc Partialview - Fatal编程技术网

.net 继承了具有不同viewmodel的局部视图

.net 继承了具有不同viewmodel的局部视图,.net,inheritance,asp.net-mvc-2,viewmodel,asp.net-mvc-partialview,.net,Inheritance,Asp.net Mvc 2,Viewmodel,Asp.net Mvc Partialview,我有一个带有ViewModelBase的MVC2项目。 我有一个主页上的局部视图: <%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage<MyProject.Web.FrontOffice.Models.ViewModels.ViewModelBase>" %> <% Html.RenderPartial("~/Views/Shared/Controls/Header.ascx"); %&g

我有一个带有ViewModelBase的MVC2项目。 我有一个主页上的局部视图:

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage<MyProject.Web.FrontOffice.Models.ViewModels.ViewModelBase>" %>
<% Html.RenderPartial("~/Views/Shared/Controls/Header.ascx"); %>
此操作调用母版页中包含的视图(包含标题partialview等)

我有个打字错误,你能帮我一下吗? 如何在上一个局部视图中传递ViewModelBannerFront? 提前谢谢你

帕特

不要运行renderpartial,尝试执行以下操作,它应该可以工作:

// assuming that your banner controller is called BannerFrontController
<%Html.RenderAction("Index", "BannerFront"); %>
等等等等。。希望这是有意义的

请参见此链接,以更近距离地了解renderpartial与renderaction:


谢谢您的回答,但我的横幅是一个简单的视图用户控件,它没有控制器。这是否意味着我必须为我的BannerFront.ascx创建一个?pat,不,但你们确实有一个关于乱石类型不匹配的问题。您需要有一个包含ViewModelBase和ViewModelBannerFront的复合viewmodel,以便根据上面所说的工作。因此继承不起作用。。。我应该把我的横幅放在每一页上。。。这就是我想要避免的。。。
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Curioos.Web.FrontOffice.Models.ViewModels.ViewModelBannerFront>" %>
public ActionResult Index(string username)
    {
        //other stuff
        ViewModelBannerFront vmbf = new ViewModelBannerFront();
        return View(vmbf);
    }
// assuming that your banner controller is called BannerFrontController
<%Html.RenderAction("Index", "BannerFront"); %>
// no need to call entire path as views are in shared folder
<% Html.RenderPartial("Header",  Model.ViewModelBase); %>

<% Html.RenderPartial("BannerFront", Model.ViewModelBannerFront); %>