As addressed in the following discussions
* https://razorgenerator.codeplex.com/discussions/471355
* https://razorgenerator.codeplex.com/discussions/278608
RazorGenerator runs into issues with EditorTemplates and DisplayTemplates where users end up having to fully qualify types in the template files for it to work correctly. The problem is with the way RazorGenerator differs in the generation of names compared to the Asp.Net build provider.
For a file named at ~\Views\Shared\Boolean.cshtml, the build provider generates file names of the format
namespace ASP {
_Page_Views_Shared_Boolean_cshtml : WebViewPage<Boolean?>
}
versus RazorGenerator's output looks like
namespace Views.Shared
{
public class Boolean : WebViewPage<Boolean?>
}
which results in the cs compiler incorrectly inferring the templated Boolean type.
Comments: Sorry, it's been a while since I looked at it. The class names we generate are simply prefixed with an underscore. So it would be public partial class _Date : Paladin3.WebUI.Infrastructure.PaladinWebViewPage<DateTime> Regardless, it achieves the purpose of distinguishing the generated type from the model.
* https://razorgenerator.codeplex.com/discussions/471355
* https://razorgenerator.codeplex.com/discussions/278608
RazorGenerator runs into issues with EditorTemplates and DisplayTemplates where users end up having to fully qualify types in the template files for it to work correctly. The problem is with the way RazorGenerator differs in the generation of names compared to the Asp.Net build provider.
For a file named at ~\Views\Shared\Boolean.cshtml, the build provider generates file names of the format
namespace ASP {
_Page_Views_Shared_Boolean_cshtml : WebViewPage<Boolean?>
}
versus RazorGenerator's output looks like
namespace Views.Shared
{
public class Boolean : WebViewPage<Boolean?>
}
which results in the cs compiler incorrectly inferring the templated Boolean type.
Comments: Sorry, it's been a while since I looked at it. The class names we generate are simply prefixed with an underscore. So it would be public partial class _Date : Paladin3.WebUI.Infrastructure.PaladinWebViewPage<DateTime> Regardless, it achieves the purpose of distinguishing the generated type from the model.