日期:2014-05-18  浏览次数:20405 次

微软提供的 MVCToolkit 大家 都编译通过 了吗?
MVCToolkit, 我从网上下来的,那个是ms 出的mvc 框架,我怎么编译有错误啊。
错误 1
找不到类型或命名空间名称“ChangeAction”(是否缺少 using 指令或程序集引用?)
E:\ODP.NET samples\文档\MVCToolkit\Blog\Models\ModelPartials.cs

还有好几个,大家帮我看看


------解决方案--------------------
楼主你的编译不过是因为你机子上装的是:AspNetMVCPreview2-setup.msi(第二预览版) 而不是ASPNetExt.exe(里面包括MVC第一预览版)

即你下载的 MVCToolkit 只能配合 第一预览版使用(只有在装有 ASPNetExt.exe的VS2008中才能编译通过)

不过我自己也有一点郁闷,

在AspNetMVCPreview2 中 引用的System.Web.Extensions 是 3.5版的 而在MVCToolkit中引用的是3.6版的 

也就是说低版本的MVC引用的 System.Web.Extensions 的版本反尔高 ,我晕,我把MVCToolkit用在第二预览版中死活不行。因为俺想用里面的 UpdateFrom 方法,我在第二预览版中没有找到类似的方法,不知道各位有没有好的方法。

-----------
在这里顺便问个问题,就是在第一预览版中,在控制器的Action方法中 可以用如下语句来跳转带ID等参数的URL

RedirectToAction(new { Action = "Category", id = product.CategoryID });

在第二预览版中反尔不能这样写了,不知道各位是如何来解决这个问题的。
------解决方案--------------------
上面的答案已找到:

第一预览版写法:
RedirectToAction(new { Controller="Products",Action = "Category", id = product.CategoryID }); 

第二预览版写法:

System.Web.Routing.RouteValueDictionary rvd=new System.Web.Routing.RouteValueDictionary();
rvd.Add("Controller","Products");
rvd.Add("Action","Category");
rvd.Add("id",product.CategoryID);
RedirectToAction(rvd);

 也可以简写成下面一句:
RedirectToAction(new RouteValueDictionary { {"Controller" ,"Products"},{"Action" ,"Category"} ,{"ID",product.CategoryID}});