gpt4 book ai didi

asp.net-mvc - 没有 ViewContext 的 URL 表单操作

转载 作者:行者123 更新时间:2023-12-01 09:11:41 25 4
gpt4 key购买 nike

是否可以在不知道 ViewContext 的情况下从操作中获取 URL(例如,在 Controller 中)?像这样的:

LinkBuilder.BuildUrlFromExpression(ViewContext context, Expression<Action<T>> action)

...但使用 Controller.RouteData 而不是 ViewContext。我好像有金属 block 。

最佳答案

这是我在单元测试中的做法:

    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;
}

根据评论,我会适应 Controller :

string path = RouteTable.Routes.GetVirtualPath(
new RequestContext(HttpContext,
RouteTable.Routes.GetRouteData(HttpContext)),
new RouteValueDictionary(
new { controller = "Foo",
action = "Bar" })).VirtualPath;

用真实姓名替换“Foo”和“Bar”。这不是我的想法,所以我不能保证它是最有效的解决方案,但它应该能让你走上正确的轨道。

关于asp.net-mvc - 没有 ViewContext 的 URL 表单操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/363234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com