Во-первых, этот код действительно работает, но вызывает у меня низкий уровень раздражения, от которого я хотел бы избавиться. У меня есть страница .cshtml, построенная с использованием синтаксиса бритвы. За кулисами живет большой, противный, нокаутирующий объект, к которому привязаны многие вещи на странице. В настоящее время при создании экземпляра этой нокаутирующей модели я делаю это путем сериализации рассматриваемого объекта модели представления C# в строковом литерале, как показано ниже.
<script type="text/javascript">
$(document).ready(function() {
var data = @Html.Raw(Json.Encode(Model));
var contentListingModel = new ContentListingModel(data);
ko.applyBindings(contentListingModel, $('#pageRoot').get(0));
});
</script>
Как я уже сказал, код работает. Однако в строке с вызовом @Html.Raw я получаю предупреждение. Visual Studio считает, что здесь есть синтаксическая ошибка (после рендеринга ее нет). Теперь совершенно понятно, ПОЧЕМУ эта штука считает, что здесь есть проблема с синтаксисом. Но я хотел бы избавиться от предупреждения, написав код таким образом, чтобы не вызывать эту проблему (я понимаю, что могу скрыть предупреждение или сделать что-то еще), но я просто хочу, чтобы оно не отображалось в тех случаях, когда Я сериализую объекты С# в JSON и вставляю их в javascript на странице. Есть идеи?
Я полностью согласен с тем, что спрашивать об этом педантично и мелочно, поскольку код работает отлично и выглядит чистым, но меня это раздражает.