asp.net-mvc – 没有ViewContext的Url表单操作
发布时间:2020-05-23 22:00:48 所属栏目:asp.Net 来源:互联网
导读:是否可以在不知道ViewContext的情况下从动作中获取URL(例如,在控制器中)?像这样的东西: LinkBuilder.BuildUrlFromExpression(ViewContext context, ExpressionActionT action) …但使用Controller.RouteData而不是ViewContext.我似乎对此有金属块. 以下是我
|
是否可以在不知道ViewContext的情况下从动作中获取URL(例如,在控制器中)?像这样的东西: LinkBuilder.BuildUrlFromExpression(ViewContext context,Expression<Action<T>> action) …但使用Controller.RouteData而不是ViewContext.我似乎对此有金属块. 解决方法以下是我在单元测试中的表现:private string RouteValueDictionaryToUrl(RouteValueDictionary rvd)
{
var context = MvcMockHelpers.FakeHttpContext("~/");
// _routes is a RouteCollection
var vpd = _routes.GetVirtualPath(
new RequestContext(context,_
routes.GetRouteData(context)),rvd);
return vpd.VirtualPath;
}
根据评论,我将适应一个控制器: string path = RouteTable.Routes.GetVirtualPath(
new RequestContext(HttpContext,RouteTable.Routes.GetRouteData(HttpContext)),new RouteValueDictionary(
new { controller = "Foo",action = "Bar" })).VirtualPath;
用真实姓名替换“Foo”和“Bar”.这是我的头脑,所以我不能保证它是最有效的解决方案,但它应该让你走在正确的轨道上. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
推荐文章
站长推荐
- ASP.NET OAuth授权 – 使用ClientId和Secret以及
- ASP.Net注销代码块
- iis-7.5 – IIS 7.5 Siteminder不保护ASP.net MV
- asp.net-mvc-3 – 方法“OrderBy”必须在方法“跳
- asp.net-mvc-3 – 如何通过HTML类(Razor语法)在M
- asp.net-mvc – 组合数据注释属性
- asp.net-mvc – Razor ViewEngine HTML.Checkbox
- 如何将成员资格表与实体框架集成? Asp.net
- asp.net-mvc-3 – 如何使用复选框列制作MVC 3 We
- asp.net – 具有管道模式=集成的IIS 7.0不会在AS
热点阅读
