我正在尝试实现一个使用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)
我在这里错过了什么?
我有一个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中的委托或其他东西?