将数据从ViewModel传递到javascript
||
我的页面上有一个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)
)
现在到有趣的部分,代码可以正常运行。该函数成功运行,但是控制台中仅显示第一个console.log(\“ this works \”)。此后的所有内容都将被忽略。
我尝试使用hasLang变量是因为在运行以下命令时:
if (@Model.Language == \"\") {
$.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: @Model.Language }, function (data) {
populateDiv($(\"#CategoryProgressWrapper\"), data);
});
}
我会在萤火虫控制台中收到错误消息:
syntax error
if ( == \"\")
它完全忽略了“ 3”
我也尝试用()传递它,例如:@(hasLang)
或@(@Model.Language)
,但没有成功。
如何将我的@Model.Language
传递给我的jquery?
谢谢
没有找到相关结果
已邀请:
1 个回复
骚瓤
。