我将在4GuysFromRolla网站上阅读有关Scott Mitchell在ASP.NET MVC 2中对数据网格进行排序和分页的教程。我收到错误CS1061:'System.Web.Routing.RouteValueDictionary'不包含'AddQueryStringParameters'的定义,也没有扩展方法'AddQueryStringParameters'接受类型'System.Web.Routing.RouteValueDictionary'的第一个参数' (您是否缺少using指令或程序集引用?)。我不确定是否需要添加dll引用或其他内容。请有人建议如何提前解决这个问题。我也下载了演示,没有问题。错误在PagerLink.ascx file..routeData.AddQueryStringParameters(); //指向此处的错误
RouteValueDictionaryExtensions.cs看起来像这样(这是帮助文件)......
using System.Web.Routing;
namespace Web
{
public static class RouteValueDictionaryExtensions
{
public static RouteValueDictionary
AddQueryStringParameters(this RouteValueDictionary dict)
{
var querystring = HttpContext.Current.Request.QueryString;
foreach (var key in querystring.AllKeys)
if (!dict.ContainsKey(key))
dict.Add(key, querystring.GetValues(key)[0]);
return dict;
}
public static RouteValueDictionary ExceptFor(this RouteValueDictionary
dict, params string[] keysToRemove)
{
foreach (var key in keysToRemove)
if (dict.ContainsKey(key))
dict.Remove(key);
return dict;
}
}
}
Global.asax.cs看起来像这样......
enter code here
namespace GridDemosMVC
{
// Note: For instructions on enabling IIS6 or IIS7 classic mode,
// visit http://go.microsoft.com/?LinkId=9394801
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id =
UrlParameter.Optional } // Parameter defaults
);
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
}
}
}
我也在使用可在microsoft上下载的Dynamic.cs文件。
答案 0 :(得分:1)
您需要使用扩展方法为命名空间添加using
语句和<%@ Import
指令。
或者,您可以将扩展方法移动到项目的命名空间中。
答案 1 :(得分:0)
添加PagerLink.ascx文件 &lt;%@ Import Namespace =“您的项目名称空间”%&gt;
答案 2 :(得分:0)
在2个用户控件(PagerLink.ascx
&amp; SmartLink.ascx
)中引用命名空间网址,如下所示。
<%@ Import Namespace="Web"%>
如果您更改了现有命名空间,请使用项目的相应命名空间。