Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 将数据从ViewModel传递到javascript_Jquery_Asp.net Mvc_Asp.net Mvc 3_Razor_Viewmodel - Fatal编程技术网

Jquery 将数据从ViewModel传递到javascript

Jquery 将数据从ViewModel传递到javascript,jquery,asp.net-mvc,asp.net-mvc-3,razor,viewmodel,Jquery,Asp.net Mvc,Asp.net Mvc 3,Razor,Viewmodel,我的页面上有一个Ajax.BeginForm,如果成功,它应该运行一个javascript函数。我以前做过,效果很好。 但是,在今天的例子中,我希望将从ViewModel中获得的一些变量传递到javascript函数中: 我的部分观点是: @model MyProject.ViewModels.CategoryViewModel @{ var hasLang = Model.Language != "" ? Model.Language : "-1"; } <script t

我的页面上有一个Ajax.BeginForm,如果成功,它应该运行一个javascript函数。我以前做过,效果很好。 但是,在今天的例子中,我希望将从ViewModel中获得的一些变量传递到javascript函数中:

我的部分观点是:

@model MyProject.ViewModels.CategoryViewModel

@{
    var hasLang = Model.Language != "" ? Model.Language : "-1";
}


<script type="text/javascript">

function UpdateCategoryProgress() {
    console.log("this works");
    console.log(@hasLang);
    console.log("this doesn't works");
    if (@hasLang == "-1") {
        $.post('@Url.Action("CategoryProgress", "Home")', { categoryid: @(Model.Category.Id) }, function (data) {
            populateDiv($("#CategoryProgressWrapper"), data);
        });
    }
    else {
        $.post('@Url.Action("CategoryProgress", "Home")', { categoryid: @(Model.Category.Id), lang: @(hasLang) }, function (data) 
            populateDiv($("#CategoryProgressWrapper"), data);
        });
    }
}
</script>

<div id="editingContainer">
@using (Ajax.BeginForm("Edit", new AjaxOptions { UpdateTargetId = "featuresDiv", OnSuccess = "UpdateCategoryProgress" }))
{
 (code here)
)
我会在firebug控制台中得到错误:

syntax error
if ( == "")
它完全忽略了
@Model.Language

我还尝试使用()传递它,比如:
@(hasLang)
@(@Model.Language)
,但没有成功

如何将
@Model.Language
传递给jquery


谢谢

您需要将
Model.Language
放在双引号中以创建Javascript字符串文本


您还应该调用
Server.JavaScriptStringEncode

Geez。。。我甚至在我的另一页上也这么做了。。。我怎么可能没有注意到这一点。谢谢但是,为什么要调用@Server.JavaScriptStringEncode for?@Lan:如果字符串有一个
或换行符。否则,您将有一个XSS孔。
syntax error
if ( == "")