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 – 使用以前输入的值防止文本框自动填充
- asp.net – 如何从URL抓取.aspx页面名称?
- asp.net-mvc – 如何在ASP.NET MVC中定义表单域前缀
- asp.net-mvc – 用于子操作的ASP.NET MVC路由匹配
- asp.net – 什么时候应该使用Page.DataBind()和Control.Dat
- asp.net-mvc-3 – Backbone.js使用ASP.NET MVC的REST URL 3
- asp.net-mvc – 如何使用存储库模式处理表关系?
- asp.net – RenderBody和RenderSection之间的区别
- asp.net – 如何在WebAPI中获取POST数据?
- ASP.NET MVC SEO URL
- asp.net-mvc – AJAX在IIS 7.5中返回404(本地),但
- .net – 编辑器模板不适用于DisplayFormat
- ASP.Net在页面中的页面/控件上调用Dispose,还是必
- asp.net-core – 程序集中找不到入口点’Microso
- 如何使用ASP.NET MVC项目启动Azure模拟器
- asp.net-mvc – Automapper映射到嵌套类
- asp.net-mvc – 使用ASP.NET MVC的基础认证
- asp.net-mvc – Asp.net MVC:上传多个图像文件?
- asp.net-mvc-3 – ASP.Net MVC 3重定向未经授权的
- asp.net – 如何从Web应用程序进行高级打印?
