我试图支持IIS下的静态文件的GZip压缩(默认情况下应该启用但不能)但到目前为止还没有工作.这是<system.webServer>Web应用程序的web.config文件中节点下的部分;
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" staticCompressionLevel="9" />
<dynamicTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/json" enabled="true" />
<add mimeType="*/*" enabled="false" />
</dynamicTypes>
<staticTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/atom+xml" enabled="true" />
<add mimeType="application/xaml+xml" enabled="true" />
<add mimeType="*/*" enabled="false" />
</staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" />
Run Code Online (Sandbox Code Playgroud)
我尝试使用谷歌浏览器.这是请求标题;
接受:text/html,application/xhtml + xml,application/xml; q = 0.9,/ ; q = 0.8
接收字符集:ISO-8859-1,utf-8; Q = …
为了提高网页的性能,我们建议使用CDN来提供.js网页上的文件.那讲得通.
此外,我们建议捆绑我们的.js文件,以减少加载时对服务器的请求数.
因此,如果我们使用CDN或捆绑.js文件,我们需要坐下来做出决定.
优缺点都有什么?哪些更有意义?
我想用Moq设置一个方法两次,但似乎最后一个覆盖了之前的方法.这是我的初始设置:
string username = "foo";
string password = "bar";
var principal = new GenericPrincipal(
new GenericIdentity(username),
new[] { "Admin" });
var membershipServiceMock = new Mock<IMembershipService>();
membershipServiceMock.Setup(ms =>
ms.ValidateUser(username, password)
).Returns(new ValidUserContext {
Principal = principal
});
Run Code Online (Sandbox Code Playgroud)
这很好但我希望这返回new ValidUserContext()如果用户名或密码而不是上面的username和password变量.为此,我添加了另一个设置,但这次它会覆盖上面的设置并始终应用它:
membershipServiceMock.Setup(ms =>
ms.ValidateUser(It.IsAny<string>(), It.IsAny<string>())
).Returns(
new ValidUserContext()
);
Run Code Online (Sandbox Code Playgroud)
使用Moq处理此类情况的最优雅方式是什么?
编辑
我通过以下方法解决了问题,但我想有更好的方法来处理这个问题:
var membershipServiceMock = new Mock<IMembershipService>();
membershipServiceMock.Setup(ms =>
ms.ValidateUser(It.IsAny<string>(), It.IsAny<string>())
).Returns<string, string>((u, p) =>
(u == username && p == password) ?
new ValidUserContext {
Principal …Run Code Online (Sandbox Code Playgroud) 对于多语言ASP.NET MVC 3 Web应用程序,我正在确定Thread.CurrentThread.CurrentCulture和Thread.CurrentThread.CurrentUICulture控制器工厂,如下所示:
public class MyControllerFactory : DefaultControllerFactory {
protected override IController GetControllerInstance(System.Web.Routing.RequestContext requestContext, Type controllerType) {
//Get the {language} parameter in the RouteData
string UILanguage;
if (requestContext.RouteData.Values["language"] == null)
UILanguage = "tr";
else
UILanguage = requestContext.RouteData.Values["language"].ToString();
//Get the culture info of the language code
CultureInfo culture = CultureInfo.CreateSpecificCulture(UILanguage);
Thread.CurrentThread.CurrentCulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;
return base.GetControllerInstance(requestContext, controllerType);
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码已经快一年了!所以,我愿意接受建议.
我在Global.asax文件上注册这个,如:
ControllerBuilder.Current.SetControllerFactory(new MyControllerFactory());
Run Code Online (Sandbox Code Playgroud)
这样做很好,但我不确定这是否是做这种行为的最佳做法和最佳场所.
我没有挖掘主要角色,ControllerFactory我无法将其与之比较ActionFilterAttribute.
你怎么看待这种行动的最佳地点?
假设我有以下T-SQL代码:
SELECT * FROM Foo f
INNER JOIN Bar b ON b.BarId = f.BarId;
WHERE b.IsApproved = 1;
Run Code Online (Sandbox Code Playgroud)
以下一行也返回相同的行集:
SELECT * FROM Foo f
INNER JOIN Bar b ON (b.IsApproved = 1) AND (b.BarId = f.BarId);
Run Code Online (Sandbox Code Playgroud)
这可能不是这里最好的案例样本,但这两者之间是否有任何性能差异?
我需要一个实现,我可以在我的ASP.NET控制器上获得无限的参数.如果我举个例子,那会更好:
我们假设我将有以下网址:
example.com/tag/poo/bar/poobar
example.com/tag/poo/bar/poobar/poo2/poo4
example.com/tag/poo/bar/poobar/poo89
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,它将获得无限数量的标记,example.com/tag/并且斜杠将成为此处的分隔符.
在控制器上我想这样做:
foreach(string item in paramaters) {
//this is one of the url paramaters
string poo = item;
}
Run Code Online (Sandbox Code Playgroud)
有没有任何已知的方法来实现这一目标?如何从控制器获取值?用Dictionary<string, string>或List<string>?
注意 :
IMO没有很好地解释这个问题,但我尽力适应它.in.随意调整它
我正在使用一个名为shiitake的React组件从npm进入我使用TypeScript的项目.该库没有TypeScript声明,所以我想我会写一个.声明文件如下所示(可能不完整,但不要太担心):
import * as React from 'react';
declare module 'shiitake' {
export interface ShiitakeProps {
lines: number;
}
export default class Shiitake extends React.Component<ShiitakeProps, any> {
}
}
Run Code Online (Sandbox Code Playgroud)
我把这个内部./typings/shiitake.d.ts文件和VS代码,我看到以下错误:
[ts]增强中的模块名称无效.模块'shiitake'解析为'd:/dev/foo/foobar.foo.Client.Web/node_modules/shiitake/dist/index.js'中的无类型模块,该模块无法扩充.
在消费方面,即使使用上述声明(因为我noImplicitAny打开了编译器开关),我仍然会得到相同的错误:
/// <reference path="../../../../typings/shiitake.d.ts" />
import * as React from 'react';
import Shiitake from 'shiitake';
Run Code Online (Sandbox Code Playgroud)
[ts]找不到模块'shiitake'的声明文件.'d:/dev/foo/foobar.foo.Client.Web/node_modules/shiitake/dist/index.js'含有'any'类型.
获取此类模块的声明文件的标准原因是通过@types/方式,并且运行良好.但是,我不能让自定义打字工作.有什么想法吗?
typescript ecmascript-6 reactjs visual-studio-code typescript2.0
我在我的视图页面上写了以下代码;
@Html.CheckBox("ChxName",true)
Run Code Online (Sandbox Code Playgroud)
我得到了以下结果;
<input checked="checked" id="ChxName" name="ChxName" type="checkbox" value="true" />
<input name="ChxName" type="hidden" value="false" />
Run Code Online (Sandbox Code Playgroud)
为什么有一个与复选框命名相同的输入元素?
我刚刚安装了mvc4 rc更新,我正在尝试构建一个运气不好的api应用程序.
我正在使用ninject但是无法加载我的控制器.我一直在收到错误
类型'Api.Controllers.ConsumerController'没有默认构造函数
我对mvc和使用注射剂都很新,所以请耐心等待.
我没有对通过nuget创建的默认绑定做任何特殊操作
public static class NinjectWebCommon
{
private static readonly Bootstrapper bootstrapper = new Bootstrapper();
/// <summary>
/// Starts the application
/// </summary>
public static void Start()
{
DynamicModuleUtility.RegisterModule(typeof(OnePerRequestHttpModule));
DynamicModuleUtility.RegisterModule(typeof(NinjectHttpModule));
bootstrapper.Initialize(CreateKernel);
}
/// <summary>
/// Stops the application.
/// </summary>
public static void Stop()
{
bootstrapper.ShutDown();
}
/// <summary>
/// Creates the kernel that will manage your application.
/// </summary>
/// <returns>The created kernel.</returns>
private static IKernel CreateKernel()
{
var kernel = new StandardKernel();
kernel.Bind<Func<IKernel>>().ToMethod(ctx => …Run Code Online (Sandbox Code Playgroud) 如何使用Web API从下面的xml响应中删除命名空间?
<ApiDivisionsResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/GrassrootsHoops.Models.Api.Response">
<Divisions xmlns:d2p1="http://schemas.datacontract.org/2004/07/GrassrootsHoops.Data.Entities">
<d2p1:Page>1</d2p1:Page>
<d2p1:PageSize>10</d2p1:PageSize>
<d2p1:Results xmlns:d3p1="http://schemas.datacontract.org/2004/07/GrassrootsHoops.Models.Api.Response.Divisions"/>
<d2p1:Total>0</d2p1:Total>
</Divisions>
</ApiDivisionsResponse>
Run Code Online (Sandbox Code Playgroud) asp.net ×3
asp.net-mvc ×3
.net ×2
c# ×2
cdn ×1
checkbox ×1
ecmascript-6 ×1
gzip ×1
iis ×1
iis-7.5 ×1
inner-join ×1
javascript ×1
moq ×1
razor ×1
reactjs ×1
sql ×1
sql-server ×1
t-sql ×1
typescript ×1
unit-testing ×1
wcf-web-api ×1
xml ×1