我想拉数据从ViewBag,并把它插入到通过JS形式隐藏字段,之前提交。
它不工作。
虽然调试,我发现了JS表达的那部分是那种忽略,结果,一个“变种”被评价为空字符串。
这里的JS部分,它应该做的任务:
function setid() {
var id = '@(ViewBag.id)';
$('#idField').val(id);
};
在调试,我得到下面的表达,这当然会导致一个空“身份证”:
function setid() {
var id = '';
$('#idField').val(id);
};
(我不知道它是唯一的障碍)
这个js功能正在被“Ajax.BeginForm”的同一页面上的“OnBegin”的说法叫。
这是驻留的形式,为我试图以分配“id”值中的HTML隐藏字段:
input type ="hidden" name ="id" id ="idField" value =""
和下面的是控制器,它返回一个局部的,即呈现为一个jquery对话框:
public ActionResult openDialog()
{
ViewBag.id = TempData["id"];
return PartialView("EndLoadDetailsDialog");
}
更新:当我想起来了,我可能已经发现了这个问题。 请让我知道,如果我是正确的:
我在其中限定viewbag值的控制器,返回一个局部视图,其为被beinng返回的最后一个视图。
这个局部视图渲染到JQuery的对话框。 当我关闭它,我回到一个之前,它包含一个形式。 在表单视图(一最后一个之前)我试图访问通过JS功能viewbag值,并将其分配给一个隐藏字段的形式。 因此,实际上,我试图让viewbag值,而不是来自于我已经发了viewbag的看法。
这是个问题吗? 是viewbag值只能从已经呈现的最后一个观点?