无法从MVC中的ViewBag中提取数据

时间:2012-04-22 16:54:05

标签: javascript asp.net-mvc viewbag

我正在尝试从ViewBag中提取数据,并在提交之前通过JS将其插入到表单隐藏字段中。

它不起作用。

在调试时,我发现JS表达式的一部分被忽略了,因此,'var'被计算为空字符串。

这是JS部分,它应该完成任务:

function setid() {
   var id = '@(ViewBag.id)';
   $('#idField').val(id);
};

在调试中我得到以下表达式,当然这会导致null'id':

function setid() {
    var id = '';
    $('#idField').val(id);
  };

(我不确定这是唯一的障碍)

这个JS函数在同一页面上被'Ajax.BeginForm'的'OnBegin'参数调用。

这是隐藏在表单中的html隐藏字段,我试图分配'id'值:

input type  ="hidden" name ="id" id ="idField" value ="" 

以下是Controller,它返回一个Partial,呈现为jquery对话框:

public ActionResult openDialog()
    {
        ViewBag.id = TempData["id"];
        return PartialView("EndLoadDetailsDialog");
    }

更新 我想起来,我可能已经找到了问题。如果我是对的,请告诉我:

我定义viewbag值的控制器返回一个局部视图,这是最后一个返回的视图。

此部分视图呈现给JQuery对话框。关闭它之后,我返回之前的一个,其中包含一个表单。在表单视图(最后一个之前的那个)中,我试图通过JS函数访问viewbag值,并将其分配给表单中的隐藏字段。实际上,我正在尝试获取viewbag值,而不是从我发送viewbag的视图中获取。

这是一个问题吗? viewbag值是否仅在已渲染的最后一个视图中可用?

0 个答案:

没有答案