asp.net-mvc-3 – ASP.Net Mvc 3 Url.Action方法使用先前请求中
当使用Url.Action帮助程序自动生成Urls时,如果页面包含类似的行
预计会产生一个类似域/学生/编辑的URL,并按预期工作. 简而言之,如果请求的网址包含任何参数,则无论是否在Url.Action方法中指定,页面的任何自动生成的链接(为该请求提供服务)都将包括这些参数. 怎么了? 解决方法
很奇怪,似乎不能重现这个问题:
public class HomeController : Controller { public ActionResult Index(string id) { return View(); } public ActionResult About(string id) { return View(); } } 并在Index.cshtml里面: @Url.Action("About","Home") 现在当我请求/ home / index / 123 url帮助器按预期生成/ home / about.没有鬼参数.那么您的方案如何不同? 更新: 现在您已经澄清了您的方案,您似乎有以下几点: public class HomeController : Controller { public ActionResult Index(string id) { return View(); } } 并在您尝试使用的Index.cshtml内部: @Url.Action("Index","Home") 如果您要求/ home / index / 123,则会生成/ home / index / 123,而不是预期的/ home / index(或简单地/考虑到默认值). 此行为是设计使然.如果要更改它,则必须编写自己的帮助器,忽略当前的路由数据.以下是它的外观: @UrlHelper.GenerateUrl( "Default","index","home",null,Url.RouteCollection,// That's the important part and it is where we kill the current RouteData new RequestContext(Html.ViewContext.HttpContext,new RouteData()),false ) 这将产生您期望的正确的URL.当然这是丑的.我会建议你把它封装成一个可重用的帮手. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何在asp.net中使用Google Chart API创建图表?
- ASP.NET MVC错误处理 – 删除aspxerrorpath
- model-view-controller – 找不到类型或命名空间名称’Scri
- asp.net-mvc – 为新的网上商店项目选择什么(在ASP.NET MVC
- 为Asp.Net MVC中的特定Controller或Action启用SSL客户端证书
- asp.net-mvc – 实体框架4不保存我的多对多行
- asp.net-mvc – 使用Url.action调用控制器方法时,只有第一个
- ASP.NET内置用户配置文件与旧stile用户类/表
- ASP.NET中读取XML文件信息的4种方法与示例代码
- asp.net-mvc – ASP.NET MVC检查Controller或Action中的自定
- asp.net – VS2010旗舰版.为什么我只看到“Silve
- asp.net – Async / Await vs TPL vs WCF Servic
- ASP.NET Core MVC 过滤器的使用方法介绍
- ASP.NET 5,.NET Core和ASP.NET Core 5有什么区别
- asp.net-mvc – 断言操作重定向到正确的操作/路由
- asp.net-mvc – 根据服务器部署32或64位ELMAH与网
- asp.net – 动态CheckBoxFor有一些禁用
- asp.net-mvc – AntiForgery异常:未提供所需的防
- 使用asp.net FtpWebRequest 实现FTP常用功能
- Exceptionless - .Net Core开源日志框架