Visual Studio 2012 RC에서 T4MVC로 .Net 4.5 비트를 실행 중입니다.T4MVC - 모델 바인딩을 사용한 작업 - 강력한 형식의 URL 문자열을 다른 컨트롤러로 가져 오는 방법은 무엇입니까?
나는 AccountController
에 대한 작업 방법을 사용 중이고 이와 비슷한 다른 컨트롤러의 정규화 된 URL을 생성하려고합니다.
public partial class ConfirmEmailController : Controller
{
// ...
[AllowAnonymous]
[HttpPost]
public virtual ActionResult Confirm(ConfirmEmailModel model)
{
//...
}
// ...
}
은 그래서 링크를 만들어 내 AccountController 조치 방법 내부 나 이메일로 보낼 수 있습니다 때 (함수를 호출 할;이 다른 구성원의 경험 Strongly-typed T4MVC Action/ActionLink 유사하지만
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
}
, 나는 단순히 이름을 얻을 모델 클래스 "www.Models.ConfirmEmail"
의 나는 최신 T4MVC 비트를 사용하고 있지만 해당 게시물 이후 여기에 어떤 변화가있는 것처럼은 보이지 않는다.
필자는 반드시 이와 같은 모델을 구성하고 전달할 수 있기를 원하지 않습니다. 강하게 유형화되고 형식이 안전한 방식으로 전체 URL을 구성하는 것이 좋습니다.
나는이 작품을 알고있다.
Url.Action(MVC.ConfirmEmail.Confirm().AddRouteValues(new ConfirmEmailModel() { Code = code, Confirm = confirm }));
그러나 내가 전달하고있어 모델 파라미터가 컨트롤러에도 유효한지 확인하지 않기 때문에 그 안 좋네요, 나는 어떤 컨트롤러 (나는 이미 실수를 한)에 전달할 수있다.
다른 방법이 있습니까? 또는 Confirm()
조치에 매개 변수 목록을 입력해야합니까?
이것은 T4MVC처럼 대중적인 프로젝트에서 지원해서는 안되는 것이 당연합니다. – John