On one MVC 4 project, we have a lot of Pages.cshtml that receive a collection of Models (generally hundreds of rows), which we serialize as JSON via
@Html.Raw(Json.Encode(Model));
The problem is that on some of those pages we are receiving an exception (The length of the string exceeds the value set on the maxJsonLength).
We know what is the reason and how to fix it. The thing is that I would like to create a similar Json.Encode()
method (using Json.Net), so we do not need to modify all the cshtml
pages. If I create a Json.Encode()
method, Razor complains about ambiguous reference between My.Namespace.Json
and System.Web.Helpers.Json
.
Again, we know how to solve this by adding an alias on the page:
@using Json = My.Alias.Json
What I'm trying to do is to transparently instruct Razor to choose this alias for all the cshtml
pages that uses this Json.Encode
. The reason is that I want this to be transparent, so later if somebody adds a new page, automatically he will start to use our custom JSON implementation.
I think on Views/Web.config
you can add namespaces and some configurations for Razor, but I don't see how to explicitly set the aliases.