Ved*_*ant 11 c# asp.net-mvc-4 owin owin-middleware
在我提出问题之前,我已经阅读了以下帖子:
这是我项目的文件夹布局:
Startup.cs
using System;
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(Bootstrapper.Startup))]
namespace Bootstrapper
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.Run(async context =>
{
await context.Response.WriteAsync(GetTime() + " My First OWIN App");
});
}
string GetTime()
{
return DateTime.Now.Millisecond.ToString();
}
}
}
Run Code Online (Sandbox Code Playgroud)
Web.config文件
<appSettings>
<add key="owin:AutomaticAppStartup" value="true" />
<add key="owin:appStartup" value="Bootstrapper.Startup" />
<add key="webpages:Version" value="2.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)
我在Bootstrapper项目中有以下参考:
更新:
忘记添加错误消息:
现在,
Owin
Startup在一个非常基础的项目中添加和使用类(如访问Home/Index)的分步过程是什么?Owin Startup调用/执行类中的Configuration方法?
更新: 2016年12月10日
检查一下Project-Folder-Layout.在Bootstrapper项目中,我有以下文件:
IocConfig.cs
[assembly: PreApplicationStartMethod(typeof(IocConfig), "RegisterDependencies")]
namespace Bootstrapper
{
public class IocConfig
{
public static void RegisterDependencies()
{
var builder = new ContainerBuilder();
builder.RegisterControllers(typeof(MvcApplication).Assembly);
builder.RegisterSource(new AnyConcreteTypeNotAlreadyRegisteredSource());
builder.RegisterModule<AutofacWebTypesModule>();
builder.RegisterType(typeof(MovieService)).As(typeof(IMovieService)).InstancePerRequest();
builder.RegisterType(typeof(MovieRepository)).As(typeof(IMovieRepository)).InstancePerRequest();
var container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想IocConfig.RegisterDependencies()在OWIN Startup课堂上执行.我在顶部做using Bootstrapper,Startup但它不起作用.我的意思是我无法引用IocConfig在Startup.怎么解决这个?
install-package Microsoft.Owin.Host.SystemWeb)安装OWIN在这里,我将回答你的第三个问题.启动类是OWIN的入口点,正在自动查找.正如官方文档中所述:
命名约定:Katana在命名空间中查找与程序集名称或全局命名空间匹配的名为Startup的类.
请注意,您也可以选择自己的Startup类名称,但必须使用装饰器或AppConfig进行设置.如上所述:https: //www.asp.net/aspnet/overview/owin-and-katana/owin-startup-class-detection
这是基本和工作OWIN测试所需的一切:
using Owin;
using System;
namespace OwinTest
{
public class Startup
{
public static void Configuration(IAppBuilder app)
{
app.Use(async (ctx, next) =>
{
await ctx.Response.WriteAsync(DateTime.Now.ToString() + " My First OWIN App");
});
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果你想使用MVC(我想通过"Home/Index"你的意思是MVC),请按照下列步骤操作:
install-package Microsoft.AspNet.Mvc).使页面继承自WebViewPage.它应该看起来像这样:
@inherits System.Web.Mvc.WebViewPage
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div>
<h1>Owin Hello</h1>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
global.asax以设置路线.右键单击项目 - >添加 - >新项 - >全局应用程序类.将路由定义添加到Application_Start方法:
protected void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.MapRoute(name: "Default",
url: "{controller}/{action}",
defaults: new { controller = "Home", action = "Index" });
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16158 次 |
| 最近记录: |