Tom*_*dee 24 .net html c# asp.net-mvc razor
这行在Visual Studio 2012中给我一个语法错误(字面上只是'语法错误'):
var data = @Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(Model));
Run Code Online (Sandbox Code Playgroud)
Model
在这种情况下是在@model MyApp.ViewModels.MyViewModel
我的cshtml顶部声明的实例.
我的模型被正确地序列化到数据var中,并且应用程序正常工作.在美容方面,将错误永久存在于我的错误列表中会很烦人.
我应该如何修改该行以使编译器满意?
编辑:
根据要求,更多背景.这是整个$(document).ready()
:
<script type="text/javascript">
$(document).ready(function () {
$('#ReportDate').datepicker();
$('#DispositionDate').datepicker();
var data = @Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(Model));
var vm = new NonconformingProductViewModel(data);
ko.applyBindingsWithValidation(vm);
// validate on page load so all reqd fields are highlighted.
var valid = ko.validation.group(vm, {deep: true});
valid.showAllMessages(true);
}); // end document.ready
</script>
Run Code Online (Sandbox Code Playgroud)
And*_*rei 27
实现一个set
返回输入参数的简单JavaScript 函数:
function set(value){
return value;
}
Run Code Online (Sandbox Code Playgroud)
使用此函数将Razor模型值分配给JavaScript变量:
var data = set(@Json.Encode(Model));
Run Code Online (Sandbox Code Playgroud)
作为选项,您可以使用自我调用功能:
var data = function() { return set(@Json.Encode(Model)); }();
Run Code Online (Sandbox Code Playgroud)
hai*_*770 16
尝试将其包装在function
以下内容中:
var data = function() { return @Html.Raw(Json.Encode(Model)); }();
Run Code Online (Sandbox Code Playgroud)
Ric*_*ema 13
使用JSON.Net而不是JavaScriptSerializer或DataContractJsonSerializer来避免JSON日期的噩梦:
var data = function () {
return @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model)); }();
Run Code Online (Sandbox Code Playgroud)
更容易!! 这将解决这个小烦恼:
var model = [@Html.Raw(Json.Encode(Model))][0];
Run Code Online (Sandbox Code Playgroud)
基本上intellisense需要一些东西@Html.Raw
.实际上没有错,但我们必须处理智能感知的缺点.这里我们将结果声明为新数组的第一个索引,然后返回第一个索引.
仅供参考:如果您希望模型反映DOM的更改,请尝试使用JSModel类.
归档时间: |
|
查看次数: |
29380 次 |
最近记录: |