我一直在使用T4MVC https://github.com/T4MVC/T4MVC(仅供参考:v2.6.62)相当长一段时间了,我一直在慢慢地将我们的代码转移到这种工作方式(减少对魔法弦 http://en.wikipedia.org/wiki/Magic_string_(programming)).
但我不得不停下来,因为出于某种原因,T4MVC 无法将对象转换为 url,并且似乎只能在原始类型(int/string/等)上工作。
这是一个例子:
路线细分:
/MyController/MyAction/{Number}/{SomeText}
Class:
namespace MyNamespace
{
public class MyClass
{
public int Number { get; set; }
public string SomeText { get; set; }
}
}
控制器:
public class MyController
{
public virtual ActionResult MyAction(MyClass myClass)
{
return View();
}
}
View:
<%= Html.Action(
T4MVC.MyController.Actions.MyAction(
new MyClass()
{
Number = 1,
SomeText = "ABC"
}
) %>
最终结果是这样的:
/MyController/MyAction?myClass=MyNamespace.MyClass
and not
/MyController/MyAction/1/ABC
还有其他人有这个问题吗?像这样的 T4MVC url 可用吗?
问题也被问到ASP.NET 论坛 http://forums.asp.net/p/1532611/3714104.aspx.