我猜测我的方法是错误的,这就是为什么我的研究产生的结果很少
我的网站使用的是查询字符串,在我的HtmlHelper类中,我可以使用以下代码获取查询字符串
启动MVC4时,defulat路由允许您将ID作为查询字符串传递。路由引擎'转换'这从查询字符串到URL的一部分 我如何查询此值?
public static MvcHtmlString ActionLinkWithQueryString(this HtmlHelper helper, string linkText, string action, string controllerName, object routeValues)
{
var queryString = helper.ViewContext.HttpContext.Request.QueryString;
...
以上工作正常。
但是,我现在正在使用路由引擎。当您第一次使用MVC时,您将获得为您设置的ID参数,当您执行类似于www.mysite.com/?id=HelloWorld
的搜索时,路由引擎会转换'或者'翻译'这是一个URL,例如www.mysite.com/HelloWorld
问题是,我仍然需要获得该值 - HelloWorld值。
使用上面的代码总是返回一个空列表,因为没有查询字符串!
我知道我只能读取URL,用正斜杠拆分然后从数组中取出项目,但是,我希望有一种更优雅的方式。
造成这种情况的真正原因是由于分页。发生的事情是我的网址是www.mysite.com/products/shoes/12
然后我点击下一页,它会丢失值,显示www.mysite.com/products/10
(其中10是起始索引)。显然我需要网址为www.mysite.com/products/10/shoes/12
如何从URL获取值HelloWorld(ID参数)?
答案 0 :(得分:1)
您可以从路线值获取它:
object id = helper.ViewContext.RouteData.Values["id"];