我正在运行带有T4MVC的.Net 4.5位的Visual Studio 2012 RC。T4MVC - 模型绑定操作 - 如何获取完全限定的强类型URL字符串到另一个控制器?
我在我的AccountController
的Action方法中,我想为其他控制器生成完全限定的URL,如下所示:
public partial class ConfirmEmailController : Controller
{
// ...
[AllowAnonymous]
[HttpPost]
public virtual ActionResult Confirm(ConfirmEmailModel model)
{
//...
}
// ...
}
所以我要调用一个函数时(即创建一个指向我的AccountController操作方法里面我可以通过电子邮件,
private string GetEmailConfirmationUrl(MembershipUser aUser, bool confirm)
{
string code = aUser.ProviderUserKey.ToString();
var model = new ConfirmEmailModel() { Code = code, Confirm = confirm };
Url.Action(MVC.ConfirmEmail.Confirm(model); // very typesafe but doesn't work
}
然而,类似这样的其他成员的经验Strongly-typed T4MVC Action/ActionLink我只是得到了名字模型类"www.Models.ConfirmEmail"
的我使用的是最新的T4MVC位,但它并不像有许多人在这里的任何变化,因为这个职务。
我不一定希望能够像这样构建和传递模型,我只需要以强类型,类型安全的方式构造完整的URL。
我知道这个作品;
Url.Action(MVC.ConfirmEmail.Confirm().AddRouteValues(new ConfirmEmailModel() { Code = code, Confirm = confirm }));
但是,这是没有好,因为它不验证我传递的模型参数甚至适用于该控制器,我可以把它们传递给任何控制器(我已经犯了那个错误)。
是否有任何其他方式来实现此目的,或者我必须在我的Confirm()
操作中添加参数列表?
这绝对令人费解,这应该不像T4MVC那样受欢迎。 – John