小编Wal*_*ter的帖子

在MVC Razor视图中使用旧版ASP.NET ASCX用户控件

我正在尝试实现一个使用WebForm ascx用户控件(非MVC)的MVC Razor _Layout.cshtml页面.我这是根据Scott Hansleman的文章"使用ASP.NET MVC 3混合Razor视图和WebForms母版页"的"是"部分进行的.http ://www.hanselman.com/blog/MixingRazorViewsAndWebFormsMasterPagesWithASPNETMVC3.aspx

文章说明如何在webform Site.Master页面以及MVC Razor _Layout页面中使用相同的ascx用户控件.

从我在Stackoverflow上的其他地方读到的内容,可以在MVC页面中使用传统的ascx用户控件(以及ASP.NET webform服务器控件).使用以下行应该在我的Razor _Layout中呈现ascx用户控件:

@{ Html.RenderPartial("~/UserControls/WebUserControl1.ascx"); }
Run Code Online (Sandbox Code Playgroud)

但是,这会引发错误:

The view at '~/UserControls/WebUserControl1.ascx' must derive from ViewPage,
ViewPage<TModel>, ViewUserControl, or ViewUserControl<TModel>.
Run Code Online (Sandbox Code Playgroud)

我也试过以下类似的结果:

@Html.Partial("~/UserControls/WebUserControl1.ascx")
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

asp.net-mvc webforms ascx

16
推荐指数
3
解决办法
3万
查看次数

Ninject:实现WithConstructorArgument(字符串名称,Func <IContext,object>回调)

我有一个MVVM WP7应用程序,我正在尝试将一个页面/ ViewModel中的值发送到第二个ViewModel的构造函数.我已经安装了Ninject,并使用以下行来使用静态测试值:

this.Bind<TaskViewModel>().ToSelf().WithConstructorArgument("TaskID", 2690)
Run Code Online (Sandbox Code Playgroud)

同样,它使用静态值,但我需要它是用户选择的变量.我被告知要使用过载

WithConstructorArgument(string name, Func<IContext,object> callback). 
Run Code Online (Sandbox Code Playgroud)

我认为这个回调会在第一个ViewModel上调用一个函数并获取值.

但我没有成功,很容易承认我在Ninject或使用Func回调参数方面不是很有经验.我已经尝试设置一个委托和函数来从第一个ViewModel获取值,但是这给出了一个错误,说我正在尝试传入一个类型.我究竟如何指定使用回调的参数,我是否正确使用第一个ViewModel中的委托或其他东西?

c# ninject

5
推荐指数
1
解决办法
2337
查看次数

标签 统计

ascx ×1

asp.net-mvc ×1

c# ×1

ninject ×1

webforms ×1