我刚刚在我的项目中安装了 T4MVC,但遇到了一些问题。
在我的控制器中,我可以毫无问题地调用重定向到操作:
return RedirectToAction(Actions.Index());
如果我确实从我的角度调用它,我会得到一个 ArgumentOutOfRangeException。
@Html.ActionLink("Delete Dinner", MVC.Home.Index())
为了确保我做得正确,我创建了一个新的 MVC 解决方案并且该行有效。我从我的 HomeController 中删除了我的“baseController”继承并重新安装了 T4MVC 以确保它不会干扰。我不知道从哪里开始寻找这个,调试对我没有帮助,因为它似乎在扩展方法中爆炸:
[ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index]
System.ThrowHelper.ThrowArgumentOutOfRangeException() +72
System.Collections.ObjectModel.Collection`1.set_Item(Int32 index, T value) +10419142
System.Web.Mvc.ControllerContext.get_RequestContext() +25
System.Web.Mvc.Html.LinkExtensions.RouteLink(HtmlHelper htmlHelper, String linkText, String routeName, String protocol, String hostName, String fragment, RouteValueDictionary routeValues, IDictionary`2 htmlAttributes) +47
System.Web.Mvc.T4Extensions.ActionLink(HtmlHelper htmlHelper, String linkText, ActionResult result, IDictionary`2 htmlAttributes, String protocol, String hostName, String fragment) +196
System.Web.Mvc.T4Extensions.ActionLink(HtmlHelper htmlHelper, String linkText, ActionResult result) +72
ASP._Page_Views_Home_Index_cshtml.Execute() in c:\Thva\Misc\DropBox\Work\MyProjects\Wims\Wims.Website\Views\Home\Index.cshtml:53
任何的想法?提前致谢
编辑:我刚试过这个,它仍然不起作用:创建一个新控制器:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace Wims.Website.Controllers
{
public partial class MyTestController : Controller
{
//
// GET: /MyTest/
public virtual ActionResult Index()
{
return View();
}
}
}
运行 AutoT4MVC,查看:
@{
ViewBag.Title = "Index";
}
@Html.ActionLink("aiaieiae", MVC.MyTest.Index())
<h2>Index</h2>
为了确保我没有依赖,如果我调用我的页面它仍然不起作用:
http://localhost:2303/MyTest/index