NancyFx使用嵌入式视图

时间:2012-08-09 17:28:57

标签: nancy

我正在尝试使用NancyFX的嵌入式视图功能,但无法实现它。我用过example。但是,看起来Nancy并没有使用ResourceViewLocationProvider来查找我的观点。

我的bootstrapp配置,

    protected override void ConfigureApplicationContainer(IKernel existingContainer)
    {
        base.ConfigureApplicationContainer(existingContainer);

        var currentAssembly = GetType().Assembly;
        ResourceViewLocationProvider.RootNamespaces.Add(currentAssembly, "Candidate.Nancy.SelfHosted.Views");
    }

    protected override NancyInternalConfiguration InternalConfiguration
    {
        get { return NancyInternalConfiguration.WithOverrides(x => x.ViewLocationProvider = typeof(ResourceViewLocationProvider)); }
    }

我的模块,

public class AccountModule : NancyModule
{
    private readonly IUserManagement _userManagement;

    public AccountModule(IUserManagement userManagement) : base("/account")
    {
        _userManagement = userManagement;
        Get["/login"] = p => View["Login.cshtml"];
    }
}

Login.cshtml位于/Views/Account/Login.cshtml下,并标记为嵌入式资源。

如果我运行应用程序,我得到HTTP 500.在我看来,它试图在文件系统而不是汇编资源上找到它。

  

Nancy.RequestExecutionException:哦,不! --->   Nancy.ViewEngines.ViewNotFoundException:无法找到视图   'Login.cshtml'当前可用的视图引擎扩展:   sshtml,html,htm,cshtml,vbhtml检查的位置:   Login.cshtml,视图/ Login.cshtml,视图/帐号/ Login.cshtml,账户/ Login.cshtml,视图/帐号/ Login.cshtml,帐户/ Login.cshtml   根路径:   d:\开发\项目\ candidate.net的\ src \ Candidate.Nancy.Selfhosted \ BIN \调试   在Nancy.ViewEngines.DefaultViewFactory.GetRenderedView(String   viewName,Object model,ViewLocationContext viewLocationContext)at   System.Dynamic.UpdateDelegates.UpdateAndExecute4 [T0,T1,T2,T3,TRET](调用点   site,T0 arg0,T1 arg1,T2 arg2,T3 arg3)at   Nancy.ViewEngines.DefaultViewFactory.RenderView(String viewName,   对象模型,ViewLocationContext viewLocationContext)at   Nancy.NancyModule.ViewRenderer.get_Item(String viewName)at   Candidate.Nancy.Selfhosted.Modules.AccountModule。< .ctor> b__0(对象p)   在   d:\开发\项目\ candidate.net的\ src \ Candidate.Nancy.Selfhosted \模块\ AccountModule.cs:行   17在Nancy.Routing.Route.Invoke(DynamicDictionary参数)
  在Nancy.NancyEngine.ResolveAndInvokeRoute(NancyContext context)中   Nancy.NancyEngine.InvokeRequestLifeCycle(NancyContext context,   IPipelines管道)---内部异常堆栈跟踪结束---
  在Nancy.NancyEngine.InvokeOnErrorHook(NancyContext context,   ErrorPipeline管道,Exception ex)

更新:此问题在Nancy 0.12.1.0中为resolved

0 个答案:

没有答案