小编Kra*_*r00的帖子

从WebAPI生成Route Url到MVC控制器操作

我习惯使用类似于下面的内容生成到MVC控制器操作中的其他控制器操作的路由URL:

public class ApplicationController : Controller
{
    public ActionResult Index( )
    {
        var url = Url.RouteUrl("routename",
           new { controller = "Application", Action = "Index2" , other="other" });
    }

    public ActionResult Index2( string other)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

但我也需要能够从webapi中生成到MVC控制器动作的URL,我将如何进行此操作?

APIController上似乎有一个UrlHelper属性,但我找不到任何如何使用它的例子,但我自己也无法弄明白.

更新:我尝试生成URL的原因是这个特定的webapi方法发送一封电子邮件,该邮件向收件人提供一个链接,指导用户返回网站的相应部分.我显然希望摆脱硬编码,因为它不适用于不同的部署,如果我开始更改路由,这个链接将被破坏.有没有更好的方法来做到这一点?

asp.net-mvc asp.net-mvc-routing urlhelper asp.net-mvc-4 asp.net-web-api

21
推荐指数
1
解决办法
2万
查看次数

OpenID Connect是否支持资源所有者密码凭据授予?

我以前一直在使用OAuth资源所有者凭据流进行授权.

但是,我现在想考虑使用openid connect进行身份验证和授权,并且想知道openid connect是否支持资源所有者凭据流.

openid oauth-2.0 thinktecture-ident-server openid-connect

19
推荐指数
2
解决办法
1万
查看次数

删除和重新创建Windows Azure存储表的正确方法=错误409冲突 - 代码:TableBeingDeleted

我是Windows Azure开发的新手,并且需要在Windows Azure存储表中存储一些数据.

该表实际上仅用于为位于azure存储驱动器上的某些文件提供快速查找机制.

因此,我计划在应用程序启动时填充此表(即在Web应用程序全局应用程序启动时)

而不是尝试维护此表以更改应用程序未运行时驱动器可能发生的更改.或者因为这个驱动器只是一个资源的vhd,我们可能偶尔上传一个新的vhd.

因此,而不是试图维持这一点的麻烦.在每次应用程序启动时重建此表就足够了.

我开始组合一些代码来检查表是否已经存在,如果它确实删除它,然后重新创建一个新表.

var storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["AzureStorage"].ConnectionString);
var tableClient = storageAccount.CreateCloudTableClient();
var rmsTable = tableClient.GetTableReference("ResourceManagerStorage");
rmsTable.DeleteIfExists();
rmsTable.Create();
Run Code Online (Sandbox Code Playgroud)

我曾预料到这不起作用.我收到以下错误:

The remote server returned an error: (409) Conflict. 

HTTP/1.1 409 Conflict
Cache-Control: no-cache
Transfer-Encoding: chunked
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: c6baf92e-de47-4a6d-82b3-4faec637a98c
x-ms-version: 2012-02-12
Date: Tue, 19 Mar 2013 17:26:25 GMT

166
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
  <code>TableBeingDeleted</code>
  <message xml:lang="en-US">The specified table is being deleted. Try operation later.
RequestId:c6baf92e-de47-4a6d-82b3-4faec637a98c
Time:2013-03-19T17:26:26.2612698Z</message>
</error>
0
Run Code Online (Sandbox Code Playgroud)

这样做的正确方法是什么?是否有一个事件可以订阅,以便在表被删除时通知您?有关实施此方法的最佳方法的其他建议吗?

c# azure azure-storage azure-web-roles azure-table-storage

17
推荐指数
2
解决办法
1万
查看次数

为WIndows Azure网站配置httpCompression设置

无论如何控制Windows Azure网站中的压缩设置.

我想启用动态json压缩,并且可以通过相应地配置applicationHosts.config文件,成功地在内部部署站点上执行此操作.

在Windows Azure网站上有这样的选择吗?(不是网络角色)

http-compression azure

7
推荐指数
1
解决办法
1449
查看次数

Visual Studio Team Services构建通知

有没有办法让visual studio构建通知工具与新的vNext构建系统一起使用?

目前,我所能看到的是可用于选择通知的旧的基于xaml工作流的构建.

我也想将它用于vNext脚本化构建系统.

azure-devops azure-pipelines

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

使用ASP.NET MVC 4应用程序实例化Unity命名类型注册

我想了解如何解决MVC4应用程序中的统一命名类型注册。

我正在使用“ Unity 3.0”和“ ASP.NET MVC的Unity Boostrapper”。

我了解到Unity已在DependencyResolver中注册,因此我可以使用依赖项解析器方法来获取已注册类型的实例。

当我想找回简单的注册时,此方法很好用。

例如

//Registration
container.RegisterType<IFootballer, VanPersey>();

//Instantiation 
var footballer1 = DependencyResolver.Current.GetService<IFootballer>();
Run Code Online (Sandbox Code Playgroud)

但是在某些情况下,当我想获取对命名类型注册的引用时,似乎IDependencyResolver接口没有提供适当的方法来获取命名类型注册实例。

如果我可以直接访问unity容器,则可以执行以下操作:

//Registration 
container.RegisterType<IFootballer, VanPersey>("Attacker" );
container.RegisterType<IFootballer, NemanjaVidic>("Defender");

//Instantiation 
unityContainer.Resolve<IFootballer, Footballer>("Attacker")
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,为了获得命名注册的实例,在MVC应用程序中使用unity的最合适方法是什么。即可以进入统一容器吗?

请注意,此问题不适用于任何生产实现,我正在研究Unity(以及首次使用IoC容器)并希望获得更好的理解。

我了解在生产中,我很可能会通过控制器构造函数传递依赖关系,这实际上使我想到了另一个问题。

在以下示例中,使用控制器构造函数注入时,如何指示要解析的命名类型:

//Registration 
container.RegisterType<IFootballer, VanPersey>("Attacker" );
container.RegisterType<IFootballer, NemanjaVidic>("Defender");

//Instantiation 
public HomeController(IFootballer footballer)
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc ioc-container inversion-of-control unity-container

2
推荐指数
1
解决办法
5035
查看次数