asp.net-mvc – 使用URL重写时Url.Action不正确
|
当我使用URL重写时,我从Action方法中收到不正确的URL. 我在web.config中有这个重写规则: <rule name="Old Objects 2" stopProcessing="true">
<match url="^transportbilar/(nya|begagnade|miljobilar)/(.*)$" ignoreCase="true"/>
<action type="Rewrite" url="/transportbilar/{R:2}"/>
</rule>
这将重写一个像/ transportbilar / nya / fiat / 7s76s8dg这样的URL到/ transportbilar / fiat / 7s76s8dg,这很好,但是Url.Action被这个困惑了. 我使用这样的表达式在页面中创建一个URL: url.Action("Slideshow","Object",new { id = objectId });
当URL重写不被使用(直接浏览页面)时,这会产生正确的URL / Object / Slideshow / 7s76s8dg,但是当使用URL重写时,Action方法会将页面URL的第一部分添加到生成的URL,并生成不正确的URL / transportbilar / Object / Slideshow / 7s76s8dg. 我认为我可以在重写规则中做一个重定向,这将会绕过这个问题,因为请求的URL会改变,但是有没有办法让它在不改变重定向的情况下工作? 编辑: 我认为可能相关的路线是这些(按此顺序添加): transportbilar/handlare/{id}/{criteria}
transportbilar/handlare
transportbilar
transportbilar/sokresultat/{criteria}
transportbilar/{brand}/{id}/{criteria}
{controller}/{action}/{id}
最后一条路线会抓住url / Object / Slideshow / 7s76s8dg,而最后一条路线会抓住/ transportbilar / fiat / 7s76s8dg. 解决方法嗯..不要以为我可以帮你找到你重写的解决方案.我猜内部IIS / ASP.NET可能会遇到您尝试在路由中破解正则表达式映射时可能遇到的问题 – 即URL.Action无法从Controller / Action组合确定正确的反向映射.您可以查看以下内容对您的网址的看法,如果您提供了关于什么问题的提示? <%= Request.Path %> <%= Request.RawUrl %> <%= Request.ServerVariables["HTTP_URL"] %> …看看`/ transportbilar’是否被添加到那个阶段. 无论如何,我会认真地重定向旧的网址.这种方法将您实际的当前系统与遗留系统隔离开来,特别是因为您的路由收集似乎已经很复杂了. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 如何将两个模型传递给一个View
- asp.net-mvc – 将HTML.EditorFor转换为下拉列表(html.drop
- asp.net-mvc – ASP.Net MVC4根cshtml和“不继承’System.W
- asp.net-mvc-3 – FluentValidation – 验证跨多个属性
- asp.net – 一个明智的PasswordStrengthRegularExpression
- asp.net-mvc – 使用文件扩展名创建ActionResult的推荐方法
- asp.net – 屏幕读者测试网站的可访问性
- asp.net-mvc-3 – ASP.NET MVC 3未找到视图“错误”或其主文
- asp.net-mvc – 在MVC 3中写入只读会话
- 是否可以使Page.IsPostBack独立于ASP.net而变为真?
- asp.net – 删除HTML或ASPX扩展
- asp.net – Telerik RadGrid GridDataItem – 如
- asp.net – 在MVC5中使用java脚本代码 – 放在哪
- iis-7 – 主域和可信域之间的信任关系失败
- .net – 为什么在单击按钮时,SelectedIndexChang
- asp.net-mvc – asp.net mvc – string或int的路
- asp.net – 使用json仅序列化对象的一部分
- asp.net – 使用“async”(即使它应该完成)作为M
- asp.net – 在PostBack期间Recaptcha消失
- ASP.NET平台有相当于Heroku吗?
