C#中的javascript文字-避免警告
javascript literals from C# - avoiding warnings
首先,这段代码确实有效,但它给我带来了一种低级别的烦恼,我希望摆脱这种烦恼。我有一个使用razor语法构建的.cs.html页面。有一个巨大的、令人讨厌的、令人震惊的物体生活在幕后,页面上的许多东西都与它绑定在一起。目前,在实例化该敲除模型时,我是通过在下面这样的字符串文本中序列化有问题的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认为存在语法错误(渲染后没有)。现在,这完全有道理为什么这个东西认为存在语法问题。但我很想通过不触发这个问题的方式进行编码来消除警告(我意识到我可以隐藏警告或做任何其他事情),但我只想在我将C#对象序列化为JSON并将其填充到页面上的javascript中的情况下不显示它。有什么想法吗?
我完全接受问这个问题是迂腐和琐碎的,因为代码运行得很好,看起来很干净,但它让我很恼火
IDE足够智能,可以接受纯由Razor组成的行,因此您可以编写:
@Html.Raw( "var data= " + Json.Encode(Model) + ";" )
alert(data);
如果(假定的)隐式全局令您感到困扰(例如,它触发了Resharper警告),请拆分声明和赋值。
var data; // javascript
@Html.Raw( "data= " + Json.Encode(Model) + ";" ) // all razor
在运行时生成:
var data;
data = {"foo": "bar"};
'您可以在ActionMethod中将您的模型序列化为Json,然后通过ViewData或ViewBag将其传递到您的视图,然后使用Html.Raw将其简单地传递到ViewModel,类似于以下内容:
//在您的ActionMethod 中
var serializer=新的JavaScriptSerializer();
Viewdata["SomeName"]=序列化程序。序列化(模型);
//在您的cshtml 中
@{
string data=(string)Viewdata["SomeName"];
}
$(document).ready(function){
var contentListingModel = new ContentListingModel('@Html.Raw(data)');
ko.applyBindings(contentListingModel, $('#pageRoot').get(0));
});
javascript调试器忽略razor代码并查看此
var data = ;
这是一个语法错误,请替换此
var data = @Html.Raw(Json.Encode(Model));
这样,警告就会消失。
var data @('=') @Html.Raw(Json.Encode(Model));
- 添加文字和评论功能更新Div
- chrome扩展更改主机/域警告
- 如何计算对象文字中的键
- 如何永久停止jshint'只读'警告/错误
- I'我想放下画布上的文字.帮帮我
- 对象文字方法上的Javascript绑定不起作用
- JShint-.jshintrc中的ES6有esversion,但仍收到警告(使用atom)
- 以ECMAScript 5及更高版本为目标时,八进制文字不可用
- ES6 模板文字是否比 eval 更安全
- Webpack UglifyJS仍在发出警告消息
- 我确实有一个表单,如果用户输入了输入,它应该检查否定或空的输入框,并抛出一条警告消息
- React Router一直给我一个警告:你不能更改<路由器路由>
- 是索引数组文字的好做法
- 为什么Grunt Copy给了我一个'undefined不是函数'警告
- 执行此代码时,我看不到警告框
- 从多行文字中获取第一个修剪的字符串
- 如何在只接受字符串值/文字的HTML属性中调用函数
- 页面中的声学警告
- 在Resharper中禁用javascript类型强制警告
- C#中的javascript文字-避免警告