asp.net-mvc – 追加?param =到mvc路由
|
一些MVC站点在路由Url上附加了查询字符串参数(我注意到StackOverflow的作用),例如: ?https://stackoverflow.com/questions/tagged/java页= 9802&放大器;排序=最新及放大器;页面大小= 15 将参数设置为更常规的?querystring params,而不是/ param / values /?有什么好处? 此外,这些参数如何附加到已设置的路线上?我熟悉使用诸如“users / details / {id}”之类的参数设置mvc路由但是不知道如何配置使用1个或更多的路由?params如上面的示例url? 解决方法当您有多个可选参数并且不希望包含非指定参数的默认值只是为了满足路径时,查询字符串参数很有用.并且您无需执行任何特殊操作即可将这些参数包含在呈现的URL中. 以下面的路线为例: routes.MapRoute
(
"QuestionsTagged","questions/tagged/{tag}",new { controller = "Questions",action = "Tagged" }
);
如果使用以下方法呈现指向该路线的链接: Url.RouteUrl
(
"QuestionsTagged",new
{
tag = "java",page = 9802,sort = "newest",pagesize = 15
}
)
…然后路由引擎足够聪明,可以看到路由包含一个名为tag的参数,并且传递的路由值对象也有一个名为tag的东西,因此它在路由中使用该值. 在路径中没有相应参数的任何提供的路由值(在这种情况下为page,sort和pagesize)作为查询字符串参数被添加.因此上面的Url.RouteUrl调用将返回/ questions / tagged / java?page = 9802& sort = newest& pagesize = 15. 并且您的操作方法可以在其签名中明确列出这些参数(提高可读性和可维护性),或者您可以通过Request.QueryString访问它们. public class QuestionsController : Controller
{
// I can explicitly list the parameters in my signature and let routing do
// its magic,like this...
public ViewResult Tagged(string tag,int? page,int? pagesize)
{
// ...or I can grab parameters like this:
string sort = Request.QueryString["sort"];
return View();
}
}
请注意,action方法的参数不必与路径中指定的参数匹配. (在路由中,我只指定了标记,但是操作方法的签名列表标记,页面和页面大小.)但是,动作方法的任何参数(也不是路径的参数)必须是引用或可空类型. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.NET MVC3 HttpStatusCodeResult StatusDescription –
- asp.net – 如何使用命令行msbuild部署VS2012网站项目,而无
- .net – Autofac和IDisposable界面
- asp.net-mvc – .net MVC控制器动作方法的属性
- asp.net – 我如何使用AJAX来确定用户的会话是否已过期,然后
- asp.net-mvc-3 – 在MVC3中的WebGrid列中应用特定宽度
- 企业ASP.NET MVC 3架构大纲
- ASP.NET dev服务器和IIS Express有什么区别?
- 为什么我需要停止使用%= ...%来渲染并开始使用Asp.net中的
- asp.net – 使用itemtemplate动态地将列添加到Grid-view
- asp.net – JSON在IE7中未定义
- asp.net-mvc – ASP.NET MVC:如何从Html.Action
- asp.net-mvc-2 – 关于nginx / mono 2.8的ASP.Ne
- ASP.NET MVC HTML Helpers是否被高估?
- 在ASP.NET Core中使用AOP来简化缓存操作
- asp.net-web-api – ASP身份OAuth令牌 – 我应该
- 如何调试ASP.NET HTTPHandler
- ASP.NET:Response.Redirect(…)后的代码会发生什
- asp.net-mvc – MVC DateTime验证失败
- asp.net-identity-2 – Asp.Net身份保存用户没有
