请问在.net mvc3.0中,如何在action之间传递参数,切记不能在地址栏中看到
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问在.net mvc3.0中,如何在action之间传递参数,切记不能在地址栏中看到相关的知识,希望对你有一定的参考价值。
我用RedirectToAction传,但是在地址栏中会看到,有没有什么好的办法,谢谢!
少量的可以用Session,不止地址栏,客户端整个都看不到 参考技术A 用 new View("View名称") 可以指定和Action不同名的View 参考技术B 你有用viewmodel 来建立吗? 你可以用 html.hiddenfor 来隐藏。 参考技术C 讲台上,演讲者绘色绘色的在演说小明买彩票中奖了,他欣喜若狂如何在 ASP.NET MVC 中的 URL 之后允许额外的文本?
【中文标题】如何在 ASP.NET MVC 中的 URL 之后允许额外的文本?【英文标题】:How do I allow extra text after my URLs in ASP.NET MVC? 【发布时间】:2011-01-19 03:46:25 【问题描述】:我的应用中只有这条路线:
routes.MapRoute(
"Default",
"controller/action/id",
new controller = "Home", action = "Index", id = ""
);
这适用于以下网址:
/Blah/索引 /Blah/创建 /Blah/详细信息/5
我想像这样在最后一个中添加文本:
/Blah/Details/5/Page-Title-Here-Or-Whatever
所以我的问题是:
我的路线应该是什么样子才能实现这一点?(或者如果它与路线没有任何关系......我该怎么办?)
【问题讨论】:
【参考方案1】:MSDN 链接:http://msdn.microsoft.com/en-us/library/cc668201.aspx
routes.MapRoute(
"Default",
"controller/action/id/*allTheRest",
new controller = "Home", action = "Index", id = "", allTheRest=""
);
函数签名应该类似于
public ActionResult MyAction(int? id, string rest)
this.TempData["ID"] = id ?? -1000;
this.TempData["REST"] = rest ?? "Not Provided";
return View();
【讨论】:
这不太适合我...我需要重新启动 IIS 或清除某处的缓存吗? 您使用的是哪个版本的 MVC?这是几周后将包含在 VS2K10 中的 MVC 2 版本。 我从头开始创建了一个项目,这确实有效,谢谢!我只需要弄清楚为什么它在我现有的 IIS 托管项目中不起作用... 在新问题中发布您的路线,有人会帮助您调试。发布您希望匹配的 URL。以上是关于请问在.net mvc3.0中,如何在action之间传递参数,切记不能在地址栏中看到的主要内容,如果未能解决你的问题,请参考以下文章