是否可以在 ASP.NET MVC 的脚本块中引用 ViewData?
Posted
技术标签:
【中文标题】是否可以在 ASP.NET MVC 的脚本块中引用 ViewData?【英文标题】:Is it possible to reference ViewData within a script block in ASP.NET MVC? 【发布时间】:2010-09-25 13:13:39 【问题描述】:我想使用 jQuery 为按钮添加单击处理程序,但处理程序需要引用控制器提供的数据。有没有办法在 ASP.NET MVC 的脚本块中访问 ViewData?还是需要在控制器中构建脚本?
【问题讨论】:
【参考方案1】:如果脚本块在 ASP.NET 页面中,那么您可以引用它...
例如:
<script type="text/javascript">
jQuery(document).ready(function()
jQuery('#group-edit-form').validate(
rules:
title:
required: true,
remote: '<%=Url.Action("ValidateGroupName", new id = ViewData["GroupId"] ) %>?parentId=' + getParentId()
,
messages:
title:
required: getMessage (7002),
remote: '<%= ((MessagingModel)ViewData["Messages"]).GetMessage (9001) %>'
)
);
</script>
当运行时引擎处理页面时,会评估 块中的所有内容,无论其在页面中的位置如何。
【讨论】:
执行此操作时是否获得 Intellisense? 很遗憾没有,VS 将其作为字符串的一部分读取,至少在上面的示例中): VS 2008 在您的 aspx 页面上为您提供智能感知。 我在脚本块或 html 标记内都没有得到智能感知。 当 Intellisense 在脚本块中时,我没有得到它。对于像上面这样的场景,我会在脚本块之外为智能感知创建标签,然后将其复制'n'粘贴到脚本标签区域中。有点笨重。以上是关于是否可以在 ASP.NET MVC 的脚本块中引用 ViewData?的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET MVC 4 ScriptBundle 返回空
ASP.NET MVC中Unobtrusive Ajax的妙用