Razor Syntax Error Serializing ASP.NET Model To JSON With Html.Raw
Solution 1:
Using function
Implement a simple JavaScript set
function that returns input argument:
function set(value){
return value;
}
Use this function to assign Razor model value to a JavaScript variable:
var data = set(@Json.Encode(Model));
As an option you can use self-calling function:
var data = function() { return set(@Json.Encode(Model)); }();
Solution 2:
Try to wrap it within a function
as follows:
var data = function() { return @Html.Raw(Json.Encode(Model)); }();
Solution 3:
Use JSON.Net, instead of either the JavaScriptSerializer or DataContractJsonSerializer, to avoid the nightmare that is JSON Dates:
var data = function () {
return @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model)); }();
Solution 4:
Even easier!! This will fix that little annoyance:
var model = [@Html.Raw(Json.Encode(Model))][0];
Basically intellisense wants something around @Html.Raw
. There is actually nothing wrong but we have to handle the intellisense shortcoming. Here we declare the result as the first index of a new array, then return the first index.
FYI: If you want your model to reflect changes to the DOM then try the JSModel class.
Solution 5:
You don't need to write any new javascript functions, just wrap the code into brackets
var data = (@Html.Raw(Json.Encode(Model)));
works for me in Visual Studio 2015, not sure about VS2012
Post a Comment for "Razor Syntax Error Serializing ASP.NET Model To JSON With Html.Raw"