我想在加载局部视图时执行一个函数。 我的部分观点如下。我试图从脚本调用该函数。但我想我不能在我的脚本中使用ViewData。我不知道在脚本中使用viewdata的正确方法。有没有办法访问脚本中的viewdata。
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<clsAdministration>" %>
<script language="javascript" type="text/javascript" for="window" event="onload">
InitializeView(ViewData["RoleErrMessage"]);
</script>
<script type="text/javascript" language="Javascript">
function InitializeView(msg) {
if (msg.toString().length > 0) {
alert(msg);
}
}
</script>
谢谢, 卡皮尔
答案 0 :(得分:3)
如果您更改此行:
InitializeView(ViewData["RoleErrMessage"]);
对于这样的事情:
InitializeView('<%=ViewData["RoleErrMessage"]%>');
它会起作用。原因是将运行的脚本是:
InitializeView('Message');
服务器端代码(<%=ViewData["RoleErrMessage"]%>
)将在服务器端执行,然后结果将发送到客户端,您的javascript将运行。
答案 1 :(得分:0)
Kapil,也许脚本在文档完全加载之前就已经运行了。
您可以在加载文档时尝试运行它。不知道如何在javascript中执行此操作,但在jQuery中你会写;
$('document').ready(function(){InitializeView('<%=ViewData["RoleErrMessage"]%>'); });
我认为你仍然需要做@Mattias建议的代码,但我可能错了。
以上内容完全未经测试,因此您可能需要稍微调整一下。
答案 2 :(得分:0)
可以使用以下代码完成,我刚刚测试过。
var variable_X=('@ViewData["pubId"]');