返回首页


后,我以前的帖子,这里是另外一个。请求头值提供者
这是一个完全无用的要求:添加一个值的供应商,将让您使用无调用HttpContext.Current.Request(或同样不能接受的东西)在您的行动,请求头。其实,这是荒谬的简单,因为我们已经有了一个方便的基类,NameValueCollectionValueProvider,需要一个集合,它的价值,并提供给不知情的控制器。因此,它的代码很简单:

public class RequestHeaderValueProvider : NameValueCollectionValueProvider {

	public RequestHeaderValueProvider(ControllerContext controllerContext)

		: base(controllerContext.HttpContext.Request.Headers, 

			CultureInfo.CurrentCulture) { }

 

}

 

public class RequestHeaderValueProviderFactory : ValueProviderFactory {

	public override IValueProvider GetValueProvider

			(ControllerContext controllerContext) {

		return new RequestHeaderValueProvider(controllerContext);

	}

}

注意,我们需要一个ValueProviderFactory再次。而我们需要注册以及在Global.asax:{C}
现在它足够的操作方法参数命名为你需要的头,你会自动获得的价值。为它编写一个测试
因此,我完全不跟你说实话,当我说,这是完全无用的。除了在REST风格的应用程序中使用它,有重定向回邮政重定向获取常规的一部分,主要是得到引荐价值,是一个很常见的需要。因此,我们可以测试两件事情(当然使用{A}):我们有我们作为一个参数的引荐价值,我们实际上是重定向到它。都是集成测试,第二个是测试我们的基础设施和实际行动的方法,但谁在乎:
[Test]

public void TestHeaderProvider() {

	var request = new WebRequest("/Sample/ActionUsingReferer")

		{AutoRedirect = false};

	const string previousurl = "/PreviousUrl";

	request.Headers["Referer"] = previousurl;

	var response = new TestSession().ProcessRequest(request);



	Assert.AreEqual(previousurl, 

			response.ActionMethodParameters["referer"]);

	Assert.AreEqual(previousurl, 

			response.RedirectLocation);

}

公告,我们有,禁用Ivonna Autoredirection功能:没有,我们将测试结果重定向(快速调查:你希望此属性默认为false),而不是原来的请求。请注意,我们使用的是新的MVC功能Ivonna:操作方法参数的能力。
最后,这里的代码,使这个测试高兴:{体C3}
不幸的是,像User-Agent头的名字是不是很C#中友好,所以你可能会修改你的代码,以便能够消耗这些参数命名,说,USER_AGENT头。

回答

评论会员:游客 时间:2012/02/07
。乌代・辛格:检查了这一点:imgsrc=希望它可以帮助{S0}
Vivek克里希纳穆尔蒂
评论会员:游客 时间:2012/02/07
有不同的方式做到这一点的途径之一选择CONVERT(VARCHAR(10),getdate(),103)103日/月/年的格式
爱德华・卢:嗨,

试试这个。


,你会得到的日期只有{S0的}

的问候,
爱德华
评论会员:解脱塔瓦 时间:2012/02/07
参阅此链接可以显示日期部分,根据自己的需要:

{A3的}]