我正在運行帶有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