나는 다음과 같은 작업을했다 적절한 T4MVC 방법으로 도시 매개 변수를 전달할 때. 그것을 달성 할 수있는 방법이 있습니까?T4MVC ModelBinding
1
A
답변
3
이 같은 City
유형에 대한 정의 unbinder T4MVC 모델 Unbinder 기능 (http://t4mvc.codeplex.com/documentation 3.1), 당신이 구현할 수와 지금 가능 :
public class CityUnbinder : IModelUnbinder<City>
{
public void UnbindModel(RouteValueDictionary routeValueDictionary, string routeName, City city)
{
if (user != null)
routeValueDictionary.Add("cityAlias", city.Alias);
}
}
다음에 등록 (위해 Application_Start에서) T4MVC :
ModelUnbinderHelpers.ModelUnbinders.Add(new CityUnbinder());
그 후에는 일반적으로 URL을 생성하기위한 MVC.Home.GetCityObjects (도시)를 사용할 수 있습니다.
2
나는 그렇게 생각하지 않는다. 소스 코드를 보면 당신은 생성 된 방법은 단지 매개 변수 이름 '도시'를 사용 city
인스턴스를 추가하는 것을 볼 수
GetCityObjects().AddRouteValue("cityAlias", city.cityAlias)
을 :
당신은 매개 변수가없는 버전을 사용하고 수동으로 경로 값을 추가해야합니다.
0
해결 방법을 발견했습니다. 나는 T4MVC에 다음을 하드 코딩 한 :
<#foreach (var method in controller.ActionMethods) { #>
public override <#=method.ReturnTypeFullName #> <#=method.Name #>(<#method.WriteFormalParameters(true); #>) {
var callInfo = new T4MVC_<#=method.ReturnType #>(Area, Name, ActionNames.<#=method.ActionName #>);
<#if (method.Parameters.Count > 0) { #>
<#foreach (var p in method.Parameters) { #>
<# if (p.Name != "city") { #>
callInfo.RouteValueDictionary.Add(<#=p.RouteNameExpression #>, <#=p.Name #>);
<# } #>
<# else #>
<# { #>
callInfo.RouteValueDictionary.Add("cityAlias", city.Alias);
<# } #>
<#} #>
<#}#>
return callInfo;
}
나는 그것을 좋아하지 말할 수는 없지만, 적어도 내 경우에 작동합니다.
David, T4MVC에 더 일반적인 구현 방법을 소개하는 것에 대해 어떻게 생각합니까?
관련 문제
- 1. T4MVC?
- 2. T4MVC
- 3. Modelbinding 2
- 4. mvc modelbinding
- 5. MVCContrib T4MVC
- 6. T4MVC Html.BeginForm는
- 7. ASP.NET MVC 1 : DataSet ModelBinding
- 8. Asp.Net MVC 3 ModelBinding 어레이
- 9. ModelBinding in asp.net mvc Beta1
- 10. T4MVC T4MVC 선택 매개 변수 현재 컨텍스트에서 추론
- 11. T4MVC 단위 테스트 생성기
- 12. T4MVC 및 Resharper 탐색
- 13. T4MVC : MVC.Controller.ActionParams는 무엇을위한 것입니까?
- 14. TeamCity의 휴대용 영역이있는 T4MVC
- 15. ASP.Net MVC FormCollection VS ModelBinding 효율성
- 16. 명령 줄에서 T4MVC 변환을 실행하십시오.
- 17. T4MVC 2.6.44 T4MVC.settings.t4 파일이 누락되었습니다.
- 18. RouteValueDictionary를 T4MVC ActionLink에 추가하는 방법
- 19. 빌드 스크립트와 함께 T4MVC 사용하기
- 20. ApiController 내에서 T4MVC URL 생성
- 21. 외부 자바 스크립트 파일과 함께 사용하는 T4MVC
- 22. T4MVC 2.6.65 및 UseLowercaseRoutes = true 오류
- 23. T4MVC 내가 내보기에 다음 사용 때이 나타났습니다
- 24. T4MVC 컨트롤러와 일치하는 여러 유형이 있습니다.
- 25. T4MVC 링크로 이동하기위한 Visual Studio 매크로
- 26. T4MVC 및 명명 된 매개 변수
- 27. T4MVC 상수를 사용하도록 HTML.Partial을 얻으려면 어떻게해야합니까?
- 28. t4Mvc 및 분할 컨트롤러와 액션 이름 Html.BeginForm는
- 29. T4MVC 기본 컨트롤러에 기본 생성자가 없음
- 30. T4MVC 생성 파일 및 다른 위치
원칙적으로 좋게 들립니다. 불행히도 T4MVC에서 작업 할 수있는 리소스가 제한되어 있기 때문에이 작업을 할 시간이있는 작성자를 찾아야합니다. 나는 명백한 수정으로 버그를 빨리 고치려고 노력하지만. –
@DavidEbbo, 구현할 시간이 좀 있으면 좋겠지 만 먼저 구현할 것에 대해 논의하고 싶습니다. 유사한 사례를 일반화하고이를 다루는 가장 좋은 방법을 찾아내는 것이 좋습니다. – SiberianGuy