Viewbag数据无法从Controller持续查看?

时间:2013-07-22 19:05:16

标签: jquery asp.net-mvc

我搜索了很长一段时间,所以如果这是一个重复的帖子,我会道歉。

如果用户具有应用程序定义的权限不足,我想在jquery对话框上禁用保存按钮。但是,在我将数据库中的权限更改为只读(因此禁用保存按钮)后,我仍然可以保存更改。

我正在尝试在控制器的ViewBag对象中设置一个值并返回一个局部视图。控制器中的代码是:

Boolean blnReadOnlyPermissions = IdentityHelper.ReadOnly;
if (blnReadOnlyPermissions)
{
    ViewBag.ReadOnlyPermissions = '0';
}
else
{
    ViewBag.ReadOnlyPermissions = '1';
}

在控制器中,我尝试过双引号(“),整数值和实际文本(”True“,”True“),这些都无法设置ViewBag的值。代码执行成功,我可以看到ViewBag至少在控制器中设置。

视图代码为:

function EditDialogFocus() {
    var ReadOnlyPermissions = '@ViewBag.ReadOnlyPermissions';
    if (ReadOnlyPermissions == '0') {
        $('#dialog-Edit').attr('disabled', true);
        $('#btnSave').attr('disabled', true);
    } else {
        $('#dialog-Edit').attr('disabled', false);
        $('#btnSave').attr('disabled', false);
    }
}

jQuery对话框是:

$('#dialog-Edit').dialog({
    open: EditDialogFocus,
    autoOpen: false,
    width: 1000,
    resizable: false,
    title: 'Edit Customer',
    modal: true,
    position: ['center', 'middle'],
    buttons: [
        {
            id: "btnCancel",
            text: "Cancel",
            click: function () { $(this).dialog("close"); }
        }, {
            id: "btnSave",
            text: "Save",
            click: function () { UnloadForm(); SaveCustomer(); }
        }
    ]
});

有什么建议吗? 谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

试试这个

var ReadOnlyPermissions= @(ViewBag.ReadOnlyPermissions);

答案 1 :(得分:0)

您可以使用TempData["hello"] = "My value" TempData可用于多个控制器操作。